diff --git a/auto-generated-sdk/.openapi-generator/FILES b/auto-generated-sdk/.openapi-generator/FILES
index 4564515b..8ecb12d2 100644
--- a/auto-generated-sdk/.openapi-generator/FILES
+++ b/auto-generated-sdk/.openapi-generator/FILES
@@ -80,6 +80,15 @@ docs/FrequencyRoot.md
docs/Group.md
docs/GroupRoot.md
docs/GroupsApi.md
+docs/LinkedPATemplate.md
+docs/LinkedPATemplateParameters.md
+docs/LinkedPATemplateParametersRoot.md
+docs/LinkedPATemplateRoot.md
+docs/LinkedPATemplateSummary.md
+docs/LinkedPATemplateSummaryRoot.md
+docs/LinkedPATemplateUpdateParameters.md
+docs/LinkedPATemplateUpdateParametersRoot.md
+docs/LinkedPATemplatesApi.md
docs/NPOOptimizationParameters.md
docs/NPOOptimizationParametersRoot.md
docs/NPOOptimizerApi.md
@@ -101,6 +110,7 @@ docs/PACalculationParameters.md
docs/PACalculationParametersRoot.md
docs/PACalculationsApi.md
docs/PAComponent.md
+docs/PAComponentData.md
docs/PAComponentRoot.md
docs/PADateParameters.md
docs/PAIdentifier.md
@@ -110,18 +120,33 @@ docs/PubCalculationParametersRoot.md
docs/PubCalculationsApi.md
docs/PubDateParameters.md
docs/PubIdentifier.md
+docs/QuantAllUniversalScreenParameters.md
docs/QuantCalculationMeta.md
docs/QuantCalculationParameters.md
docs/QuantCalculationParametersRoot.md
docs/QuantCalculationsApi.md
+docs/QuantDate.md
docs/QuantDateList.md
+docs/QuantDateListObsolete.md
docs/QuantFdsDate.md
+docs/QuantFdsDateObsolete.md
+docs/QuantFormula.md
docs/QuantFqlExpression.md
+docs/QuantFqlExpressionObsolete.md
docs/QuantIdentifierUniverse.md
+docs/QuantIdentifierUniverseObsolete.md
docs/QuantScreeningExpression.md
+docs/QuantScreeningExpressionObsolete.md
docs/QuantScreeningExpressionUniverse.md
+docs/QuantScreeningExpressionUniverseObsolete.md
docs/QuantUniversalScreenParameter.md
+docs/QuantUniversalScreenParameterObsolete.md
docs/QuantUniversalScreenUniverse.md
+docs/QuantUniversalScreenUniverseObsolete.md
+docs/QuantUniverse.md
+docs/ReturnType.md
+docs/SPARAccounts.md
+docs/SPARAccountsRoot.md
docs/SPARBenchmark.md
docs/SPARBenchmarkRoot.md
docs/SPARCalculationParameters.md
@@ -130,6 +155,27 @@ docs/SPARCalculationsApi.md
docs/SPARDateParameters.md
docs/SPARIdentifier.md
docs/StrategyDocumentsApi.md
+docs/TemplateContentTypes.md
+docs/TemplatedPAComponentParameters.md
+docs/TemplatedPAComponentParametersRoot.md
+docs/TemplatedPAComponentSummary.md
+docs/TemplatedPAComponentSummaryRoot.md
+docs/TemplatedPAComponentUpdateParameters.md
+docs/TemplatedPAComponentUpdateParametersRoot.md
+docs/TemplatedPAComponentsApi.md
+docs/UnlinkedPATemplate.md
+docs/UnlinkedPATemplateCategoryAndType.md
+docs/UnlinkedPATemplateCategoryAndTypeDetails.md
+docs/UnlinkedPATemplateCategoryAndTypeDetailsRoot.md
+docs/UnlinkedPATemplateCategoryAndTypeRoot.md
+docs/UnlinkedPATemplateParameters.md
+docs/UnlinkedPATemplateParametersRoot.md
+docs/UnlinkedPATemplateRoot.md
+docs/UnlinkedPATemplateSummary.md
+docs/UnlinkedPATemplateSummaryRoot.md
+docs/UnlinkedPATemplateUpdateParameters.md
+docs/UnlinkedPATemplateUpdateParametersRoot.md
+docs/UnlinkedPATemplatesApi.md
docs/VaultCalculationParameters.md
docs/VaultCalculationParametersRoot.md
docs/VaultCalculationsApi.md
@@ -162,12 +208,15 @@ fds/analyticsapi/engines/api/fiab_calculations_api.py
fds/analyticsapi/engines/api/fpo_optimizer_api.py
fds/analyticsapi/engines/api/frequencies_api.py
fds/analyticsapi/engines/api/groups_api.py
+fds/analyticsapi/engines/api/linked_pa_templates_api.py
fds/analyticsapi/engines/api/npo_optimizer_api.py
fds/analyticsapi/engines/api/pa_calculations_api.py
fds/analyticsapi/engines/api/pub_calculations_api.py
fds/analyticsapi/engines/api/quant_calculations_api.py
fds/analyticsapi/engines/api/spar_calculations_api.py
fds/analyticsapi/engines/api/strategy_documents_api.py
+fds/analyticsapi/engines/api/templated_pa_components_api.py
+fds/analyticsapi/engines/api/unlinked_pa_templates_api.py
fds/analyticsapi/engines/api/vault_calculations_api.py
fds/analyticsapi/engines/api_client.py
fds/analyticsapi/engines/apis/__init__.py
@@ -234,6 +283,14 @@ fds/analyticsapi/engines/model/frequency.py
fds/analyticsapi/engines/model/frequency_root.py
fds/analyticsapi/engines/model/group.py
fds/analyticsapi/engines/model/group_root.py
+fds/analyticsapi/engines/model/linked_pa_template.py
+fds/analyticsapi/engines/model/linked_pa_template_parameters.py
+fds/analyticsapi/engines/model/linked_pa_template_parameters_root.py
+fds/analyticsapi/engines/model/linked_pa_template_root.py
+fds/analyticsapi/engines/model/linked_pa_template_summary.py
+fds/analyticsapi/engines/model/linked_pa_template_summary_root.py
+fds/analyticsapi/engines/model/linked_pa_template_update_parameters.py
+fds/analyticsapi/engines/model/linked_pa_template_update_parameters_root.py
fds/analyticsapi/engines/model/npo_optimization_parameters.py
fds/analyticsapi/engines/model/npo_optimization_parameters_root.py
fds/analyticsapi/engines/model/npo_optimizer_strategy.py
@@ -253,6 +310,7 @@ fds/analyticsapi/engines/model/pa_calculation_group.py
fds/analyticsapi/engines/model/pa_calculation_parameters.py
fds/analyticsapi/engines/model/pa_calculation_parameters_root.py
fds/analyticsapi/engines/model/pa_component.py
+fds/analyticsapi/engines/model/pa_component_data.py
fds/analyticsapi/engines/model/pa_component_root.py
fds/analyticsapi/engines/model/pa_date_parameters.py
fds/analyticsapi/engines/model/pa_doc.py
@@ -261,23 +319,57 @@ fds/analyticsapi/engines/model/pub_calculation_parameters.py
fds/analyticsapi/engines/model/pub_calculation_parameters_root.py
fds/analyticsapi/engines/model/pub_date_parameters.py
fds/analyticsapi/engines/model/pub_identifier.py
+fds/analyticsapi/engines/model/quant_all_universal_screen_parameters.py
fds/analyticsapi/engines/model/quant_calculation_meta.py
fds/analyticsapi/engines/model/quant_calculation_parameters.py
fds/analyticsapi/engines/model/quant_calculation_parameters_root.py
+fds/analyticsapi/engines/model/quant_date.py
fds/analyticsapi/engines/model/quant_date_list.py
+fds/analyticsapi/engines/model/quant_date_list_obsolete.py
fds/analyticsapi/engines/model/quant_fds_date.py
+fds/analyticsapi/engines/model/quant_fds_date_obsolete.py
+fds/analyticsapi/engines/model/quant_formula.py
fds/analyticsapi/engines/model/quant_fql_expression.py
+fds/analyticsapi/engines/model/quant_fql_expression_obsolete.py
fds/analyticsapi/engines/model/quant_identifier_universe.py
+fds/analyticsapi/engines/model/quant_identifier_universe_obsolete.py
fds/analyticsapi/engines/model/quant_screening_expression.py
+fds/analyticsapi/engines/model/quant_screening_expression_obsolete.py
fds/analyticsapi/engines/model/quant_screening_expression_universe.py
+fds/analyticsapi/engines/model/quant_screening_expression_universe_obsolete.py
fds/analyticsapi/engines/model/quant_universal_screen_parameter.py
+fds/analyticsapi/engines/model/quant_universal_screen_parameter_obsolete.py
fds/analyticsapi/engines/model/quant_universal_screen_universe.py
+fds/analyticsapi/engines/model/quant_universal_screen_universe_obsolete.py
+fds/analyticsapi/engines/model/quant_universe.py
+fds/analyticsapi/engines/model/return_type.py
+fds/analyticsapi/engines/model/spar_accounts.py
+fds/analyticsapi/engines/model/spar_accounts_root.py
fds/analyticsapi/engines/model/spar_benchmark.py
fds/analyticsapi/engines/model/spar_benchmark_root.py
fds/analyticsapi/engines/model/spar_calculation_parameters.py
fds/analyticsapi/engines/model/spar_calculation_parameters_root.py
fds/analyticsapi/engines/model/spar_date_parameters.py
fds/analyticsapi/engines/model/spar_identifier.py
+fds/analyticsapi/engines/model/template_content_types.py
+fds/analyticsapi/engines/model/templated_pa_component_parameters.py
+fds/analyticsapi/engines/model/templated_pa_component_parameters_root.py
+fds/analyticsapi/engines/model/templated_pa_component_summary.py
+fds/analyticsapi/engines/model/templated_pa_component_summary_root.py
+fds/analyticsapi/engines/model/templated_pa_component_update_parameters.py
+fds/analyticsapi/engines/model/templated_pa_component_update_parameters_root.py
+fds/analyticsapi/engines/model/unlinked_pa_template.py
+fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type.py
+fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_details.py
+fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_details_root.py
+fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_root.py
+fds/analyticsapi/engines/model/unlinked_pa_template_parameters.py
+fds/analyticsapi/engines/model/unlinked_pa_template_parameters_root.py
+fds/analyticsapi/engines/model/unlinked_pa_template_root.py
+fds/analyticsapi/engines/model/unlinked_pa_template_summary.py
+fds/analyticsapi/engines/model/unlinked_pa_template_summary_root.py
+fds/analyticsapi/engines/model/unlinked_pa_template_update_parameters.py
+fds/analyticsapi/engines/model/unlinked_pa_template_update_parameters_root.py
fds/analyticsapi/engines/model/vault_calculation_parameters.py
fds/analyticsapi/engines/model/vault_calculation_parameters_root.py
fds/analyticsapi/engines/model/vault_component.py
diff --git a/auto-generated-sdk/README.md b/auto-generated-sdk/README.md
index e2d2b513..b4e8bfe3 100644
--- a/auto-generated-sdk/README.md
+++ b/auto-generated-sdk/README.md
@@ -4,7 +4,7 @@ Allow clients to fetch Analytics through APIs.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
-- Package version: 5.1.0
+- Package version: 5.2.0
- Build package: CustomPythonClientCodegen
For more information, please visit [https://developer.factset.com/contact](https://developer.factset.com/contact)
@@ -110,6 +110,7 @@ Class | Method | HTTP request | Description
*AXPOptimizerApi* | [**post_and_optimize**](docs/AXPOptimizerApi.md#post_and_optimize) | **POST** /analytics/engines/axp/v3/optimizations | Create and Run Axioma optimization
*AXPOptimizerApi* | [**put_and_optimize**](docs/AXPOptimizerApi.md#put_and_optimize) | **PUT** /analytics/engines/axp/v3/optimizations/{id} | Create or Update Axioma optimization and run it.
*AccountsApi* | [**get_accounts**](docs/AccountsApi.md#get_accounts) | **GET** /analytics/lookups/v3/accounts/{path} | Get accounts and sub-directories in a directory
+*AccountsApi* | [**get_spar_returns_type**](docs/AccountsApi.md#get_spar_returns_type) | **GET** /analytics/engines/spar/v3/accounts/{accountPath}/returns-type | Get SPAR account returns type details
*BPMOptimizerApi* | [**cancel_optimization_by_id**](docs/BPMOptimizerApi.md#cancel_optimization_by_id) | **DELETE** /analytics/engines/bpm/v3/optimizations/{id} | Cancel BPM optimization by id
*BPMOptimizerApi* | [**get_optimization_parameters**](docs/BPMOptimizerApi.md#get_optimization_parameters) | **GET** /analytics/engines/bpm/v3/optimizations/{id} | Get BPM optimization parameters by id
*BPMOptimizerApi* | [**get_optimization_result**](docs/BPMOptimizerApi.md#get_optimization_result) | **GET** /analytics/engines/bpm/v3/optimizations/{id}/result | Get BPM optimization result by id
@@ -153,6 +154,11 @@ Class | Method | HTTP request | Description
*FrequenciesApi* | [**get_spar_frequencies**](docs/FrequenciesApi.md#get_spar_frequencies) | **GET** /analytics/engines/spar/v3/frequencies | Get SPAR frequencies
*FrequenciesApi* | [**get_vault_frequencies**](docs/FrequenciesApi.md#get_vault_frequencies) | **GET** /analytics/engines/vault/v3/frequencies | Get Vault frequencies
*GroupsApi* | [**get_pa_groups**](docs/GroupsApi.md#get_pa_groups) | **GET** /analytics/engines/pa/v3/groups | Get PA groups
+*LinkedPATemplatesApi* | [**create_linked_pa_templates**](docs/LinkedPATemplatesApi.md#create_linked_pa_templates) | **POST** /analytics/engines/pa/v3/linked-templates | Create a linked PA template
+*LinkedPATemplatesApi* | [**delete_linked_pa_templates**](docs/LinkedPATemplatesApi.md#delete_linked_pa_templates) | **DELETE** /analytics/engines/pa/v3/linked-templates/{id} | Delete a linked PA template.
+*LinkedPATemplatesApi* | [**get_linked_pa_templates**](docs/LinkedPATemplatesApi.md#get_linked_pa_templates) | **GET** /analytics/engines/pa/v3/linked-templates | Get linked PA templates
+*LinkedPATemplatesApi* | [**get_linked_pa_templates_by_id**](docs/LinkedPATemplatesApi.md#get_linked_pa_templates_by_id) | **GET** /analytics/engines/pa/v3/linked-templates/{id} | Get linked PA template by id
+*LinkedPATemplatesApi* | [**update_linked_pa_templates**](docs/LinkedPATemplatesApi.md#update_linked_pa_templates) | **PUT** /analytics/engines/pa/v3/linked-templates/{id} | Update a linked PA template
*NPOOptimizerApi* | [**cancel_optimization_by_id**](docs/NPOOptimizerApi.md#cancel_optimization_by_id) | **DELETE** /analytics/engines/npo/v3/optimizations/{id} | Cancel NPO optimization by id
*NPOOptimizerApi* | [**get_optimization_parameters**](docs/NPOOptimizerApi.md#get_optimization_parameters) | **GET** /analytics/engines/npo/v3/optimizations/{id} | Get NPO optimization parameters by id
*NPOOptimizerApi* | [**get_optimization_result**](docs/NPOOptimizerApi.md#get_optimization_result) | **GET** /analytics/engines/npo/v3/optimizations/{id}/result | Get NPO optimization result by id
@@ -189,6 +195,16 @@ Class | Method | HTTP request | Description
*StrategyDocumentsApi* | [**get_barra_strategy_documents**](docs/StrategyDocumentsApi.md#get_barra_strategy_documents) | **GET** /analytics/engines/bpm/v3/strategies/{path} | Get Barra strategy documents and sub-directories in a directory
*StrategyDocumentsApi* | [**get_fpo_strategy_documents**](docs/StrategyDocumentsApi.md#get_fpo_strategy_documents) | **GET** /analytics/engines/fpo/v3/strategies/{path} | Get FactSet Portfolio Optimizer strategy documents and sub-directories in a directory
*StrategyDocumentsApi* | [**get_northfield_strategy_documents**](docs/StrategyDocumentsApi.md#get_northfield_strategy_documents) | **GET** /analytics/engines/npo/v3/strategies/{path} | Get Northfield strategy documents and sub-directories in a directory
+*TemplatedPAComponentsApi* | [**create_templated_pa_components**](docs/TemplatedPAComponentsApi.md#create_templated_pa_components) | **POST** /analytics/engines/pa/v3/templated-components | Create templated PA component
+*TemplatedPAComponentsApi* | [**delete_templated_pa_components**](docs/TemplatedPAComponentsApi.md#delete_templated_pa_components) | **DELETE** /analytics/engines/pa/v3/templated-components/{id} | Delete templated PA component
+*TemplatedPAComponentsApi* | [**update_templated_pa_components**](docs/TemplatedPAComponentsApi.md#update_templated_pa_components) | **PUT** /analytics/engines/pa/v3/templated-components/{id} | Update templated PA component
+*UnlinkedPATemplatesApi* | [**create_unlinked_pa_templates**](docs/UnlinkedPATemplatesApi.md#create_unlinked_pa_templates) | **POST** /analytics/engines/pa/v3/unlinked-templates | Create unlinked PA template
+*UnlinkedPATemplatesApi* | [**delete_unlinked_pa_templates**](docs/UnlinkedPATemplatesApi.md#delete_unlinked_pa_templates) | **DELETE** /analytics/engines/pa/v3/unlinked-templates/{id} | Delete unlinked PA template
+*UnlinkedPATemplatesApi* | [**get_default_unlinked_pa_template_types**](docs/UnlinkedPATemplatesApi.md#get_default_unlinked_pa_template_types) | **GET** /analytics/engines/pa/v3/unlinked-templates/template-types | Get default unlinked PA template types.
+*UnlinkedPATemplatesApi* | [**get_details_type**](docs/UnlinkedPATemplatesApi.md#get_details_type) | **GET** /analytics/engines/pa/v3/unlinked-templates/template-types/{id} | Get unlinked PA template type details by id.
+*UnlinkedPATemplatesApi* | [**get_unlinked_pa_templates**](docs/UnlinkedPATemplatesApi.md#get_unlinked_pa_templates) | **GET** /analytics/engines/pa/v3/unlinked-templates | Get unlinked PA templates
+*UnlinkedPATemplatesApi* | [**get_unlinked_pa_templates_by_id**](docs/UnlinkedPATemplatesApi.md#get_unlinked_pa_templates_by_id) | **GET** /analytics/engines/pa/v3/unlinked-templates/{id} | Get unlinked PA template details by id
+*UnlinkedPATemplatesApi* | [**update_unlinked_pa_templates**](docs/UnlinkedPATemplatesApi.md#update_unlinked_pa_templates) | **PUT** /analytics/engines/pa/v3/unlinked-templates/{id} | Update unlinked PA template
*VaultCalculationsApi* | [**cancel_calculation_by_id**](docs/VaultCalculationsApi.md#cancel_calculation_by_id) | **DELETE** /analytics/engines/vault/v3/calculations/{id} | Cancel Vault calculation by id
*VaultCalculationsApi* | [**get_calculation_parameters**](docs/VaultCalculationsApi.md#get_calculation_parameters) | **GET** /analytics/engines/vault/v3/calculations/{id} | Get Vault calculation parameters by id
*VaultCalculationsApi* | [**get_calculation_status_by_id**](docs/VaultCalculationsApi.md#get_calculation_status_by_id) | **GET** /analytics/engines/vault/v3/calculations/{id}/status | Get Vault calculation status by id
@@ -259,6 +275,14 @@ Class | Method | HTTP request | Description
- [FrequencyRoot](docs/FrequencyRoot.md)
- [Group](docs/Group.md)
- [GroupRoot](docs/GroupRoot.md)
+ - [LinkedPATemplate](docs/LinkedPATemplate.md)
+ - [LinkedPATemplateParameters](docs/LinkedPATemplateParameters.md)
+ - [LinkedPATemplateParametersRoot](docs/LinkedPATemplateParametersRoot.md)
+ - [LinkedPATemplateRoot](docs/LinkedPATemplateRoot.md)
+ - [LinkedPATemplateSummary](docs/LinkedPATemplateSummary.md)
+ - [LinkedPATemplateSummaryRoot](docs/LinkedPATemplateSummaryRoot.md)
+ - [LinkedPATemplateUpdateParameters](docs/LinkedPATemplateUpdateParameters.md)
+ - [LinkedPATemplateUpdateParametersRoot](docs/LinkedPATemplateUpdateParametersRoot.md)
- [NPOOptimizationParameters](docs/NPOOptimizationParameters.md)
- [NPOOptimizationParametersRoot](docs/NPOOptimizationParametersRoot.md)
- [NPOOptimizerStrategy](docs/NPOOptimizerStrategy.md)
@@ -278,6 +302,7 @@ Class | Method | HTTP request | Description
- [PACalculationParameters](docs/PACalculationParameters.md)
- [PACalculationParametersRoot](docs/PACalculationParametersRoot.md)
- [PAComponent](docs/PAComponent.md)
+ - [PAComponentData](docs/PAComponentData.md)
- [PAComponentRoot](docs/PAComponentRoot.md)
- [PADateParameters](docs/PADateParameters.md)
- [PAIdentifier](docs/PAIdentifier.md)
@@ -286,23 +311,57 @@ Class | Method | HTTP request | Description
- [PubCalculationParametersRoot](docs/PubCalculationParametersRoot.md)
- [PubDateParameters](docs/PubDateParameters.md)
- [PubIdentifier](docs/PubIdentifier.md)
+ - [QuantAllUniversalScreenParameters](docs/QuantAllUniversalScreenParameters.md)
- [QuantCalculationMeta](docs/QuantCalculationMeta.md)
- [QuantCalculationParameters](docs/QuantCalculationParameters.md)
- [QuantCalculationParametersRoot](docs/QuantCalculationParametersRoot.md)
+ - [QuantDate](docs/QuantDate.md)
- [QuantDateList](docs/QuantDateList.md)
+ - [QuantDateListObsolete](docs/QuantDateListObsolete.md)
- [QuantFdsDate](docs/QuantFdsDate.md)
+ - [QuantFdsDateObsolete](docs/QuantFdsDateObsolete.md)
+ - [QuantFormula](docs/QuantFormula.md)
- [QuantFqlExpression](docs/QuantFqlExpression.md)
+ - [QuantFqlExpressionObsolete](docs/QuantFqlExpressionObsolete.md)
- [QuantIdentifierUniverse](docs/QuantIdentifierUniverse.md)
+ - [QuantIdentifierUniverseObsolete](docs/QuantIdentifierUniverseObsolete.md)
- [QuantScreeningExpression](docs/QuantScreeningExpression.md)
+ - [QuantScreeningExpressionObsolete](docs/QuantScreeningExpressionObsolete.md)
- [QuantScreeningExpressionUniverse](docs/QuantScreeningExpressionUniverse.md)
+ - [QuantScreeningExpressionUniverseObsolete](docs/QuantScreeningExpressionUniverseObsolete.md)
- [QuantUniversalScreenParameter](docs/QuantUniversalScreenParameter.md)
+ - [QuantUniversalScreenParameterObsolete](docs/QuantUniversalScreenParameterObsolete.md)
- [QuantUniversalScreenUniverse](docs/QuantUniversalScreenUniverse.md)
+ - [QuantUniversalScreenUniverseObsolete](docs/QuantUniversalScreenUniverseObsolete.md)
+ - [QuantUniverse](docs/QuantUniverse.md)
+ - [ReturnType](docs/ReturnType.md)
+ - [SPARAccounts](docs/SPARAccounts.md)
+ - [SPARAccountsRoot](docs/SPARAccountsRoot.md)
- [SPARBenchmark](docs/SPARBenchmark.md)
- [SPARBenchmarkRoot](docs/SPARBenchmarkRoot.md)
- [SPARCalculationParameters](docs/SPARCalculationParameters.md)
- [SPARCalculationParametersRoot](docs/SPARCalculationParametersRoot.md)
- [SPARDateParameters](docs/SPARDateParameters.md)
- [SPARIdentifier](docs/SPARIdentifier.md)
+ - [TemplateContentTypes](docs/TemplateContentTypes.md)
+ - [TemplatedPAComponentParameters](docs/TemplatedPAComponentParameters.md)
+ - [TemplatedPAComponentParametersRoot](docs/TemplatedPAComponentParametersRoot.md)
+ - [TemplatedPAComponentSummary](docs/TemplatedPAComponentSummary.md)
+ - [TemplatedPAComponentSummaryRoot](docs/TemplatedPAComponentSummaryRoot.md)
+ - [TemplatedPAComponentUpdateParameters](docs/TemplatedPAComponentUpdateParameters.md)
+ - [TemplatedPAComponentUpdateParametersRoot](docs/TemplatedPAComponentUpdateParametersRoot.md)
+ - [UnlinkedPATemplate](docs/UnlinkedPATemplate.md)
+ - [UnlinkedPATemplateCategoryAndType](docs/UnlinkedPATemplateCategoryAndType.md)
+ - [UnlinkedPATemplateCategoryAndTypeDetails](docs/UnlinkedPATemplateCategoryAndTypeDetails.md)
+ - [UnlinkedPATemplateCategoryAndTypeDetailsRoot](docs/UnlinkedPATemplateCategoryAndTypeDetailsRoot.md)
+ - [UnlinkedPATemplateCategoryAndTypeRoot](docs/UnlinkedPATemplateCategoryAndTypeRoot.md)
+ - [UnlinkedPATemplateParameters](docs/UnlinkedPATemplateParameters.md)
+ - [UnlinkedPATemplateParametersRoot](docs/UnlinkedPATemplateParametersRoot.md)
+ - [UnlinkedPATemplateRoot](docs/UnlinkedPATemplateRoot.md)
+ - [UnlinkedPATemplateSummary](docs/UnlinkedPATemplateSummary.md)
+ - [UnlinkedPATemplateSummaryRoot](docs/UnlinkedPATemplateSummaryRoot.md)
+ - [UnlinkedPATemplateUpdateParameters](docs/UnlinkedPATemplateUpdateParameters.md)
+ - [UnlinkedPATemplateUpdateParametersRoot](docs/UnlinkedPATemplateUpdateParametersRoot.md)
- [VaultCalculationParameters](docs/VaultCalculationParameters.md)
- [VaultCalculationParametersRoot](docs/VaultCalculationParametersRoot.md)
- [VaultComponent](docs/VaultComponent.md)
diff --git a/auto-generated-sdk/docs/AFIOptimizationParametersRoot.md b/auto-generated-sdk/docs/AFIOptimizationParametersRoot.md
index 0f9831f8..abfcd795 100644
--- a/auto-generated-sdk/docs/AFIOptimizationParametersRoot.md
+++ b/auto-generated-sdk/docs/AFIOptimizationParametersRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**AFIOptimizationParameters**](AFIOptimizationParameters.md) | | [optional]
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/AccountDirectoriesRoot.md b/auto-generated-sdk/docs/AccountDirectoriesRoot.md
index 9d4b4a8e..3bc9f4c4 100644
--- a/auto-generated-sdk/docs/AccountDirectoriesRoot.md
+++ b/auto-generated-sdk/docs/AccountDirectoriesRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**AccountDirectories**](AccountDirectories.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/AccountsApi.md b/auto-generated-sdk/docs/AccountsApi.md
index a26cf7a8..1bc08a77 100644
--- a/auto-generated-sdk/docs/AccountsApi.md
+++ b/auto-generated-sdk/docs/AccountsApi.md
@@ -6,6 +6,7 @@ All URIs are relative to *https://api.factset.com*
Method | HTTP request | Description
------------- | ------------- | -------------
[**get_accounts**](AccountsApi.md#get_accounts) | **GET** /analytics/lookups/v3/accounts/{path} | Get accounts and sub-directories in a directory
+[**get_spar_returns_type**](AccountsApi.md#get_spar_returns_type) | **GET** /analytics/engines/spar/v3/accounts/{accountPath}/returns-type | Get SPAR account returns type details
# **get_accounts**
@@ -99,3 +100,95 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **get_spar_returns_type**
+> SPARAccountsRoot get_spar_returns_type(account_path)
+
+Get SPAR account returns type details
+
+This endpoint returns the returns type of account associated with SPAR
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import accounts_api
+from fds.analyticsapi.engines.model.spar_accounts_root import SPARAccountsRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = accounts_api.AccountsApi(api_client)
+ account_path = "accountPath_example" # str | URL encoded account path
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get SPAR account returns type details
+ api_response = api_instance.get_spar_returns_type(account_path)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling AccountsApi->get_spar_returns_type: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **account_path** | **str**| URL encoded account path |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**SPARAccountsRoot**](SPARAccountsRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Expected response, returns the list of return types for the account. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid account. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Account not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/auto-generated-sdk/docs/AxiomaEquityOptimizationParametersRoot.md b/auto-generated-sdk/docs/AxiomaEquityOptimizationParametersRoot.md
index 776085f3..0d14cae5 100644
--- a/auto-generated-sdk/docs/AxiomaEquityOptimizationParametersRoot.md
+++ b/auto-generated-sdk/docs/AxiomaEquityOptimizationParametersRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**AxiomaEquityOptimizationParameters**](AxiomaEquityOptimizationParameters.md) | | [optional]
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/BPMOptimizationParametersRoot.md b/auto-generated-sdk/docs/BPMOptimizationParametersRoot.md
index 5624514f..cb28b120 100644
--- a/auto-generated-sdk/docs/BPMOptimizationParametersRoot.md
+++ b/auto-generated-sdk/docs/BPMOptimizationParametersRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**BPMOptimizationParameters**](BPMOptimizationParameters.md) | | [optional]
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/CalculationInfoRoot.md b/auto-generated-sdk/docs/CalculationInfoRoot.md
index 4c01ad75..63cf97f6 100644
--- a/auto-generated-sdk/docs/CalculationInfoRoot.md
+++ b/auto-generated-sdk/docs/CalculationInfoRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**CalculationInfo**](CalculationInfo.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/ColumnRoot.md b/auto-generated-sdk/docs/ColumnRoot.md
index be869a65..35630808 100644
--- a/auto-generated-sdk/docs/ColumnRoot.md
+++ b/auto-generated-sdk/docs/ColumnRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**Column**](Column.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/ColumnStatisticRoot.md b/auto-generated-sdk/docs/ColumnStatisticRoot.md
index f9178a18..9b56aab0 100644
--- a/auto-generated-sdk/docs/ColumnStatisticRoot.md
+++ b/auto-generated-sdk/docs/ColumnStatisticRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**{str: (ColumnStatistic,)}**](ColumnStatistic.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/ColumnSummaryRoot.md b/auto-generated-sdk/docs/ColumnSummaryRoot.md
index 7d22f978..ccc1f118 100644
--- a/auto-generated-sdk/docs/ColumnSummaryRoot.md
+++ b/auto-generated-sdk/docs/ColumnSummaryRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**{str: (ColumnSummary,)}**](ColumnSummary.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/ComponentSummary.md b/auto-generated-sdk/docs/ComponentSummary.md
index 44e66e45..b7cfc2e3 100644
--- a/auto-generated-sdk/docs/ComponentSummary.md
+++ b/auto-generated-sdk/docs/ComponentSummary.md
@@ -6,6 +6,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **str** | Component name. | [optional]
**category** | **str** | Component category. | [optional]
+**type** | **str** | Component type. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/ComponentSummaryRoot.md b/auto-generated-sdk/docs/ComponentSummaryRoot.md
index 0a7dfc20..d0b00958 100644
--- a/auto-generated-sdk/docs/ComponentSummaryRoot.md
+++ b/auto-generated-sdk/docs/ComponentSummaryRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**{str: (ComponentSummary,)}**](ComponentSummary.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/ComponentsApi.md b/auto-generated-sdk/docs/ComponentsApi.md
index 6c1b347c..5f148f1c 100644
--- a/auto-generated-sdk/docs/ComponentsApi.md
+++ b/auto-generated-sdk/docs/ComponentsApi.md
@@ -105,11 +105,11 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **get_pa_components**
-> ComponentSummaryRoot get_pa_components(document)
+> ComponentSummaryRoot get_pa_components()
Get PA components
-This endpoint returns the list of PA components in a given PA document.
+This endpoint returns 1.List of PA components in a given PA document if document name is provided. 2.List of components in given directory if directory is provided.
### Example
@@ -148,12 +148,14 @@ configuration = fds.analyticsapi.engines.Configuration(
with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = components_api.ComponentsApi(api_client)
- document = "document_example" # str | Document Name
+ document = "document_example" # str | Document Name (optional)
+ directory = "directory_example" # str | Directory to get the components (optional)
# example passing only required values which don't have defaults set
+ # and optional values
try:
# Get PA components
- api_response = api_instance.get_pa_components(document)
+ api_response = api_instance.get_pa_components(document=document, directory=directory)
pprint(api_response)
except fds.analyticsapi.engines.ApiException as e:
print("Exception when calling ComponentsApi->get_pa_components: %s\n" % e)
@@ -164,7 +166,8 @@ with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **document** | **str**| Document Name |
+ **document** | **str**| Document Name | [optional]
+ **directory** | **str**| Directory to get the components | [optional]
### Return type
diff --git a/auto-generated-sdk/docs/CurrencyRoot.md b/auto-generated-sdk/docs/CurrencyRoot.md
index 5b678da5..5c79607b 100644
--- a/auto-generated-sdk/docs/CurrencyRoot.md
+++ b/auto-generated-sdk/docs/CurrencyRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**{str: (Currency,)}**](Currency.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/DateParametersSummaryRoot.md b/auto-generated-sdk/docs/DateParametersSummaryRoot.md
index bc8fc248..04c902c4 100644
--- a/auto-generated-sdk/docs/DateParametersSummaryRoot.md
+++ b/auto-generated-sdk/docs/DateParametersSummaryRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**DateParametersSummary**](DateParametersSummary.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/DocumentDirectoriesRoot.md b/auto-generated-sdk/docs/DocumentDirectoriesRoot.md
index ea648025..08560d4c 100644
--- a/auto-generated-sdk/docs/DocumentDirectoriesRoot.md
+++ b/auto-generated-sdk/docs/DocumentDirectoriesRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**DocumentDirectories**](DocumentDirectories.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/FIABCalculationsApi.md b/auto-generated-sdk/docs/FIABCalculationsApi.md
index 62f2d3e0..24135c3f 100644
--- a/auto-generated-sdk/docs/FIABCalculationsApi.md
+++ b/auto-generated-sdk/docs/FIABCalculationsApi.md
@@ -26,7 +26,6 @@ import time
import fds.analyticsapi.engines
from fds.analyticsapi.engines.api import fiab_calculations_api
from fds.analyticsapi.engines.model.fiab_calculation_status import FIABCalculationStatus
-from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
from pprint import pprint
# Defining the host is optional and defaults to https://api.factset.com
# See configuration.py for a list of all supported configuration parameters.
@@ -93,9 +92,9 @@ Name | Type | Description | Notes
**200** | Expected response, returns status information of the entire calculation if it is complete. | * Content-Encoding - Standard HTTP header. Header value based on Accept-Encoding Request header.
* Content-Type - Standard HTTP header.
* Transfer-Encoding - Standard HTTP header. Header value will be set to Chunked if Accept-Encoding header is specified.
* X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
**202** | Expected response, returns status information of the entire calculation if it is not complete. | * Cache-Control - Standard HTTP header. Header will specify max-age in seconds. Polling can be adjusted based on the max-age value.
* X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
**400** | Invalid identifier provided. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
-**404** | Calculation was already returned, provided id was not a requested calculation, or the calculation was cancelled | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Calculation was already returned, provided id was not a requested calculation, or the calculation was cancelled | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
@@ -202,7 +201,6 @@ import time
import fds.analyticsapi.engines
from fds.analyticsapi.engines.api import fiab_calculations_api
from fds.analyticsapi.engines.model.fiab_calculation_parameters import FIABCalculationParameters
-from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
from pprint import pprint
# Defining the host is optional and defaults to https://api.factset.com
# See configuration.py for a list of all supported configuration parameters.
@@ -271,7 +269,7 @@ Name | Type | Description | Notes
### HTTP request headers
- **Content-Type**: application/json
- - **Accept**: text/plain, application/json, text/json
+ - **Accept**: Not defined
### HTTP response details
@@ -279,7 +277,6 @@ Name | Type | Description | Notes
|-------------|-------------|------------------|
**202** | Expected response, contains the URL in the Location header to check the status of the calculation. | * Location - URL to check status of the request.
* X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-Calculations-Limit - Maximum FIAB request limit.
* X-FactSet-Api-Calculations-Remaining - Number of FIAB requests remaining till request limit reached.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
**400** | Invalid POST body. | * Location - URL to check status of the request.
* X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-Calculations-Limit - Maximum FIAB request limit.
* X-FactSet-Api-Calculations-Remaining - Number of FIAB requests remaining till request limit reached.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
-**404** | Not Found | * Location - URL to check status of the request.
* X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-Calculations-Limit - Maximum FIAB request limit.
* X-FactSet-Api-Calculations-Remaining - Number of FIAB requests remaining till request limit reached.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
**401** | Missing or invalid authentication. | * Location - URL to check status of the request.
* X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-Calculations-Limit - Maximum FIAB request limit.
* X-FactSet-Api-Calculations-Remaining - Number of FIAB requests remaining till request limit reached.
|
**403** | User is forbidden with current credentials. | * Location - URL to check status of the request.
* X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-Calculations-Limit - Maximum FIAB request limit.
* X-FactSet-Api-Calculations-Remaining - Number of FIAB requests remaining till request limit reached.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
**415** | Missing/Invalid Content-Type header. Header needs to be set to application/json. | * Location - URL to check status of the request.
* X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-Calculations-Limit - Maximum FIAB request limit.
* X-FactSet-Api-Calculations-Remaining - Number of FIAB requests remaining till request limit reached.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
diff --git a/auto-generated-sdk/docs/FICalculationsApi.md b/auto-generated-sdk/docs/FICalculationsApi.md
index bd953a63..01b4466c 100644
--- a/auto-generated-sdk/docs/FICalculationsApi.md
+++ b/auto-generated-sdk/docs/FICalculationsApi.md
@@ -425,6 +425,7 @@ with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
securities=[
FISecurity(
settlement="settlement_example",
+ call_method="No Call",
calc_from_method="calc_from_method_example",
calc_from_value=3.14,
face=1,
@@ -441,6 +442,9 @@ with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
partial_duration_months=[
1,
],
+ call_method="No Call",
+ settlement="settlement_example",
+ calc_from_method="calc_from_method_example",
),
),
meta=CalculationMeta(
@@ -555,6 +559,7 @@ with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
securities=[
FISecurity(
settlement="settlement_example",
+ call_method="No Call",
calc_from_method="calc_from_method_example",
calc_from_value=3.14,
face=1,
@@ -571,6 +576,9 @@ with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
partial_duration_months=[
1,
],
+ call_method="No Call",
+ settlement="settlement_example",
+ calc_from_method="calc_from_method_example",
),
),
meta=CalculationMeta(
diff --git a/auto-generated-sdk/docs/FIJobSettings.md b/auto-generated-sdk/docs/FIJobSettings.md
index cd4c047e..79280691 100644
--- a/auto-generated-sdk/docs/FIJobSettings.md
+++ b/auto-generated-sdk/docs/FIJobSettings.md
@@ -6,6 +6,9 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**as_of_date** | **str** | As of date |
**partial_duration_months** | **[int]** | Partial duration months | [optional]
+**call_method** | **str** | Call Method | [optional]
+**settlement** | **str** | Settlement Date | [optional]
+**calc_from_method** | **str** | Calculation from method | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/FISecurity.md b/auto-generated-sdk/docs/FISecurity.md
index b52a643c..82db08fc 100644
--- a/auto-generated-sdk/docs/FISecurity.md
+++ b/auto-generated-sdk/docs/FISecurity.md
@@ -4,10 +4,11 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**calc_from_method** | **str** | Calculation from method |
**calc_from_value** | **float** | Calculation from value |
**symbol** | **str** | Symbol |
**settlement** | **str** | Settlement date | [optional]
+**call_method** | **str** | Call Method | [optional]
+**calc_from_method** | **str** | Calculation from method | [optional]
**face** | **float** | Face | [optional] if omitted the server will use the default value of 1
**face_type** | **str** | Face type | [optional] if omitted the server will use the default value of "Current"
**discount_curve** | **str** | Discount curve | [optional]
diff --git a/auto-generated-sdk/docs/FPOOptimizationParametersRoot.md b/auto-generated-sdk/docs/FPOOptimizationParametersRoot.md
index d5e65cc5..2015223a 100644
--- a/auto-generated-sdk/docs/FPOOptimizationParametersRoot.md
+++ b/auto-generated-sdk/docs/FPOOptimizationParametersRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**FPOOptimizationParameters**](FPOOptimizationParameters.md) | | [optional]
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/FrequencyRoot.md b/auto-generated-sdk/docs/FrequencyRoot.md
index 08688b0a..a0db60c2 100644
--- a/auto-generated-sdk/docs/FrequencyRoot.md
+++ b/auto-generated-sdk/docs/FrequencyRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**{str: (Frequency,)}**](Frequency.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/GroupRoot.md b/auto-generated-sdk/docs/GroupRoot.md
index 32e22c1c..5e4fa466 100644
--- a/auto-generated-sdk/docs/GroupRoot.md
+++ b/auto-generated-sdk/docs/GroupRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**{str: (Group,)}**](Group.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/LinkedPATemplate.md b/auto-generated-sdk/docs/LinkedPATemplate.md
new file mode 100644
index 00000000..1de1b491
--- /dev/null
+++ b/auto-generated-sdk/docs/LinkedPATemplate.md
@@ -0,0 +1,17 @@
+# LinkedPATemplate
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**directory** | **str** | Template directory. | [optional]
+**snapshot** | **bool** | snapshot. | [optional]
+**content** | [**TemplateContentTypes**](TemplateContentTypes.md) | | [optional]
+**id** | **str** | Template id. | [optional]
+**description** | **str** | Template description. | [optional]
+**name** | **str** | Template name. | [optional]
+**parent_component_id** | **str** | Template parent tile. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/LinkedPATemplateParameters.md b/auto-generated-sdk/docs/LinkedPATemplateParameters.md
new file mode 100644
index 00000000..8cb94bd8
--- /dev/null
+++ b/auto-generated-sdk/docs/LinkedPATemplateParameters.md
@@ -0,0 +1,14 @@
+# LinkedPATemplateParameters
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**directory** | **str** | The directory to create a linked PA template |
+**parent_component_id** | **str** | Parent component id |
+**description** | **str** | Template description | [optional]
+**content** | [**TemplateContentTypes**](TemplateContentTypes.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/LinkedPATemplateParametersRoot.md b/auto-generated-sdk/docs/LinkedPATemplateParametersRoot.md
new file mode 100644
index 00000000..d44c9d1c
--- /dev/null
+++ b/auto-generated-sdk/docs/LinkedPATemplateParametersRoot.md
@@ -0,0 +1,12 @@
+# LinkedPATemplateParametersRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LinkedPATemplateParameters**](LinkedPATemplateParameters.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/LinkedPATemplateRoot.md b/auto-generated-sdk/docs/LinkedPATemplateRoot.md
new file mode 100644
index 00000000..ceffbce9
--- /dev/null
+++ b/auto-generated-sdk/docs/LinkedPATemplateRoot.md
@@ -0,0 +1,12 @@
+# LinkedPATemplateRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LinkedPATemplate**](LinkedPATemplate.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/LinkedPATemplateSummary.md b/auto-generated-sdk/docs/LinkedPATemplateSummary.md
new file mode 100644
index 00000000..a4215a1a
--- /dev/null
+++ b/auto-generated-sdk/docs/LinkedPATemplateSummary.md
@@ -0,0 +1,13 @@
+# LinkedPATemplateSummary
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**description** | **str** | Template description. | [optional]
+**name** | **str** | Template name. | [optional]
+**parent_component_id** | **str** | Template parent tile. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/LinkedPATemplateSummaryRoot.md b/auto-generated-sdk/docs/LinkedPATemplateSummaryRoot.md
new file mode 100644
index 00000000..1aeb776c
--- /dev/null
+++ b/auto-generated-sdk/docs/LinkedPATemplateSummaryRoot.md
@@ -0,0 +1,12 @@
+# LinkedPATemplateSummaryRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**{str: (LinkedPATemplateSummary,)}**](LinkedPATemplateSummary.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/LinkedPATemplateUpdateParameters.md b/auto-generated-sdk/docs/LinkedPATemplateUpdateParameters.md
new file mode 100644
index 00000000..822eed8b
--- /dev/null
+++ b/auto-generated-sdk/docs/LinkedPATemplateUpdateParameters.md
@@ -0,0 +1,13 @@
+# LinkedPATemplateUpdateParameters
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**parent_component_id** | **str** | Parent component id | [optional]
+**description** | **str** | Template description | [optional]
+**content** | [**TemplateContentTypes**](TemplateContentTypes.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/LinkedPATemplateUpdateParametersRoot.md b/auto-generated-sdk/docs/LinkedPATemplateUpdateParametersRoot.md
new file mode 100644
index 00000000..e9f957f4
--- /dev/null
+++ b/auto-generated-sdk/docs/LinkedPATemplateUpdateParametersRoot.md
@@ -0,0 +1,12 @@
+# LinkedPATemplateUpdateParametersRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LinkedPATemplateUpdateParameters**](LinkedPATemplateUpdateParameters.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/LinkedPATemplatesApi.md b/auto-generated-sdk/docs/LinkedPATemplatesApi.md
new file mode 100644
index 00000000..2d0eb5d0
--- /dev/null
+++ b/auto-generated-sdk/docs/LinkedPATemplatesApi.md
@@ -0,0 +1,516 @@
+
+# fds.analyticsapi.engines.LinkedPATemplatesApi
+
+All URIs are relative to *https://api.factset.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_linked_pa_templates**](LinkedPATemplatesApi.md#create_linked_pa_templates) | **POST** /analytics/engines/pa/v3/linked-templates | Create a linked PA template
+[**delete_linked_pa_templates**](LinkedPATemplatesApi.md#delete_linked_pa_templates) | **DELETE** /analytics/engines/pa/v3/linked-templates/{id} | Delete a linked PA template.
+[**get_linked_pa_templates**](LinkedPATemplatesApi.md#get_linked_pa_templates) | **GET** /analytics/engines/pa/v3/linked-templates | Get linked PA templates
+[**get_linked_pa_templates_by_id**](LinkedPATemplatesApi.md#get_linked_pa_templates_by_id) | **GET** /analytics/engines/pa/v3/linked-templates/{id} | Get linked PA template by id
+[**update_linked_pa_templates**](LinkedPATemplatesApi.md#update_linked_pa_templates) | **PUT** /analytics/engines/pa/v3/linked-templates/{id} | Update a linked PA template
+
+
+# **create_linked_pa_templates**
+> LinkedPATemplateSummaryRoot create_linked_pa_templates(linked_pa_template_parameters_root)
+
+Create a linked PA template
+
+This endpoint creates a template from an **existing portfolio analysis tile**, allowing the user to replicate and fetch reports settings. Remarks: * Mandatory, optional and locked fields can be \"accounts\", \"benchmarks\", \"groups\", \"columns\", \"dates\", \"currencyisocode\" and \"componentdetail\". * Mandatory and locked strings are mutually exclusive.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import linked_pa_templates_api
+from fds.analyticsapi.engines.model.linked_pa_template_summary_root import LinkedPATemplateSummaryRoot
+from fds.analyticsapi.engines.model.linked_pa_template_parameters_root import LinkedPATemplateParametersRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = linked_pa_templates_api.LinkedPATemplatesApi(api_client)
+ linked_pa_template_parameters_root = LinkedPATemplateParametersRoot(
+ data=LinkedPATemplateParameters(
+ directory="directory_example",
+ parent_component_id="parent_component_id_example",
+ description="description_example",
+ content=TemplateContentTypes(
+ mandatory=[
+ "mandatory_example",
+ ],
+ optional=[
+ "optional_example",
+ ],
+ locked=[
+ "locked_example",
+ ],
+ ),
+ ),
+ meta=None,
+ ) # LinkedPATemplateParametersRoot | Request Parameters
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Create a linked PA template
+ api_response = api_instance.create_linked_pa_templates(linked_pa_template_parameters_root)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling LinkedPATemplatesApi->create_linked_pa_templates: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **linked_pa_template_parameters_root** | [**LinkedPATemplateParametersRoot**](LinkedPATemplateParametersRoot.md)| Request Parameters |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**LinkedPATemplateSummaryRoot**](LinkedPATemplateSummaryRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Expected response, created a template linked to a PA3 tile. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Component not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_linked_pa_templates**
+> delete_linked_pa_templates(id)
+
+Delete a linked PA template.
+
+This endpoint deletes an existing linked PA template.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import linked_pa_templates_api
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = linked_pa_templates_api.LinkedPATemplatesApi(api_client)
+ id = "id_example" # str | Unique identifier for a linked PA template
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Delete a linked PA template.
+ api_instance.delete_linked_pa_templates(id)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling LinkedPATemplatesApi->delete_linked_pa_templates: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| Unique identifier for a linked PA template |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: None (empty response body)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: text/plain, application/json, text/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Expected response, deleted the linked PA template successfully. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Template not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_linked_pa_templates**
+> LinkedPATemplateSummaryRoot get_linked_pa_templates()
+
+Get linked PA templates
+
+This endpoint returns the list of linked PA templates in given path.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import linked_pa_templates_api
+from fds.analyticsapi.engines.model.linked_pa_template_summary_root import LinkedPATemplateSummaryRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = linked_pa_templates_api.LinkedPATemplatesApi(api_client)
+ directory = "directory_example" # str | Get linked PA templates in path. (optional)
+ document_directory = "documentDirectory_example" # str | Get linked PA templates for documents in document path (optional)
+ document_name = "documentName_example" # str | Get linked PA templates for documents by document name (optional)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ # Get linked PA templates
+ api_response = api_instance.get_linked_pa_templates(directory=directory, document_directory=document_directory, document_name=document_name)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling LinkedPATemplatesApi->get_linked_pa_templates: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **directory** | **str**| Get linked PA templates in path. | [optional]
+ **document_directory** | **str**| Get linked PA templates for documents in document path | [optional]
+ **document_name** | **str**| Get linked PA templates for documents by document name | [optional]
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**LinkedPATemplateSummaryRoot**](LinkedPATemplateSummaryRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Expected response, returns a list of templates linked to PA3 tile. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Document not found | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_linked_pa_templates_by_id**
+> LinkedPATemplateRoot get_linked_pa_templates_by_id(id)
+
+Get linked PA template by id
+
+This endpoint fetches the linked PA template settings.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import linked_pa_templates_api
+from fds.analyticsapi.engines.model.linked_pa_template_root import LinkedPATemplateRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = linked_pa_templates_api.LinkedPATemplatesApi(api_client)
+ id = "id_example" # str | Unique identifier for a linked PA template
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get linked PA template by id
+ api_response = api_instance.get_linked_pa_templates_by_id(id)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling LinkedPATemplatesApi->get_linked_pa_templates_by_id: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| Unique identifier for a linked PA template |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**LinkedPATemplateRoot**](LinkedPATemplateRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Expected response, linked PA template details. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Template not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_linked_pa_templates**
+> LinkedPATemplateSummaryRoot update_linked_pa_templates(id, linked_pa_template_update_parameters_root)
+
+Update a linked PA template
+
+This endpoint allows the user to change the request body and description from an existing template. Remarks: * Mandatory, optional and locked fields can be \"accounts\", \"benchmarks\", \"groups\", \"columns\", \"dates\", \"currencyisocode\" and \"componentdetail\". * Mandatory and locked strings are mutually exclusive.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import linked_pa_templates_api
+from fds.analyticsapi.engines.model.linked_pa_template_summary_root import LinkedPATemplateSummaryRoot
+from fds.analyticsapi.engines.model.linked_pa_template_update_parameters_root import LinkedPATemplateUpdateParametersRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = linked_pa_templates_api.LinkedPATemplatesApi(api_client)
+ id = "id_example" # str | Unique identifier for a linked PA template
+ linked_pa_template_update_parameters_root = LinkedPATemplateUpdateParametersRoot(
+ data=LinkedPATemplateUpdateParameters(
+ parent_component_id="parent_component_id_example",
+ description="description_example",
+ content=TemplateContentTypes(
+ mandatory=[
+ "mandatory_example",
+ ],
+ optional=[
+ "optional_example",
+ ],
+ locked=[
+ "locked_example",
+ ],
+ ),
+ ),
+ meta=None,
+ ) # LinkedPATemplateUpdateParametersRoot | Request Parameters
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Update a linked PA template
+ api_response = api_instance.update_linked_pa_templates(id, linked_pa_template_update_parameters_root)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling LinkedPATemplatesApi->update_linked_pa_templates: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| Unique identifier for a linked PA template |
+ **linked_pa_template_update_parameters_root** | [**LinkedPATemplateUpdateParametersRoot**](LinkedPATemplateUpdateParametersRoot.md)| Request Parameters |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**LinkedPATemplateSummaryRoot**](LinkedPATemplateSummaryRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Expected response, updated a template linked to a PA3 tile. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Template or component not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/auto-generated-sdk/docs/NPOOptimizationParametersRoot.md b/auto-generated-sdk/docs/NPOOptimizationParametersRoot.md
index 9feba733..f5c865c4 100644
--- a/auto-generated-sdk/docs/NPOOptimizationParametersRoot.md
+++ b/auto-generated-sdk/docs/NPOOptimizationParametersRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**NPOOptimizationParameters**](NPOOptimizationParameters.md) | | [optional]
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/NPOOptimizerApi.md b/auto-generated-sdk/docs/NPOOptimizerApi.md
index 77bfd2b4..378277db 100644
--- a/auto-generated-sdk/docs/NPOOptimizerApi.md
+++ b/auto-generated-sdk/docs/NPOOptimizerApi.md
@@ -425,7 +425,7 @@ with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
strategy=NPOOptimizerStrategy(
overrides=NPOOptimizerStrategyOverrides(
objective={
- "key": {},
+ "key": None,
},
constraints=[
ConstraintAction(
@@ -580,7 +580,7 @@ with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
strategy=NPOOptimizerStrategy(
overrides=NPOOptimizerStrategyOverrides(
objective={
- "key": {},
+ "key": None,
},
constraints=[
ConstraintAction(
diff --git a/auto-generated-sdk/docs/NPOOptimizerStrategyOverrides.md b/auto-generated-sdk/docs/NPOOptimizerStrategyOverrides.md
index c071568e..f1c18d4c 100644
--- a/auto-generated-sdk/docs/NPOOptimizerStrategyOverrides.md
+++ b/auto-generated-sdk/docs/NPOOptimizerStrategyOverrides.md
@@ -4,7 +4,7 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**objective** | **{str: ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},)}** | Objective parameters | [optional]
+**objective** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Objective parameters | [optional]
**constraints** | [**[ConstraintAction]**](ConstraintAction.md) | List of constraints | [optional]
**tax** | **str** | Tax Can be set to \"\" for local | [optional]
**transaction_cost** | **str** | Transaction cost Can be set to \"\" for local | [optional]
diff --git a/auto-generated-sdk/docs/ObjectRoot.md b/auto-generated-sdk/docs/ObjectRoot.md
index 2136606b..3ff1d756 100644
--- a/auto-generated-sdk/docs/ObjectRoot.md
+++ b/auto-generated-sdk/docs/ObjectRoot.md
@@ -4,8 +4,8 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**data** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**data** | **bool, date, datetime, dict, float, int, list, str, none_type** | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/OptimizerOutputTypes.md b/auto-generated-sdk/docs/OptimizerOutputTypes.md
index 16b14f81..4cb298f6 100644
--- a/auto-generated-sdk/docs/OptimizerOutputTypes.md
+++ b/auto-generated-sdk/docs/OptimizerOutputTypes.md
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
**trades** | [**OptimizerTradesList**](OptimizerTradesList.md) | | [optional]
**optimal** | [**OptimizerOptimalHoldings**](OptimizerOptimalHoldings.md) | | [optional]
**account** | [**OptimalPortfolio**](OptimalPortfolio.md) | | [optional]
-**stats** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**stats** | **bool, date, datetime, dict, float, int, list, str** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/PAComponent.md b/auto-generated-sdk/docs/PAComponent.md
index bb365705..57816608 100644
--- a/auto-generated-sdk/docs/PAComponent.md
+++ b/auto-generated-sdk/docs/PAComponent.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**snapshot** | **bool** | Is the component type snapshot or subperiod. | [optional]
**name** | **str** | Component name. | [optional]
**category** | **str** | Component category. | [optional]
+**type** | **str** | Component type. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/PAComponentData.md b/auto-generated-sdk/docs/PAComponentData.md
new file mode 100644
index 00000000..e7db33ed
--- /dev/null
+++ b/auto-generated-sdk/docs/PAComponentData.md
@@ -0,0 +1,17 @@
+# PAComponentData
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**accounts** | [**[PAIdentifier]**](PAIdentifier.md) | List of accounts. | [optional]
+**benchmarks** | [**[PAIdentifier]**](PAIdentifier.md) | List of benchmarks. | [optional]
+**groups** | [**[PACalculationGroup]**](PACalculationGroup.md) | List of groupings for the PA calculation. This will take precedence over the groupings saved in the PA document. | [optional]
+**columns** | [**[PACalculationColumn]**](PACalculationColumn.md) | List of columns for the PA calculation. This will take precedence over the columns saved in the PA document. | [optional]
+**dates** | [**PADateParameters**](PADateParameters.md) | | [optional]
+**currencyisocode** | **str** | Currency ISO code for calculation. | [optional]
+**componentdetail** | **str** | PA Storage type. It can be GROUPS or TOTALS or SECURITIES. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/PAComponentRoot.md b/auto-generated-sdk/docs/PAComponentRoot.md
index 8d45fd9c..a8a79133 100644
--- a/auto-generated-sdk/docs/PAComponentRoot.md
+++ b/auto-generated-sdk/docs/PAComponentRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**PAComponent**](PAComponent.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/PubCalculationParametersRoot.md b/auto-generated-sdk/docs/PubCalculationParametersRoot.md
index bb797cae..f2db35a7 100644
--- a/auto-generated-sdk/docs/PubCalculationParametersRoot.md
+++ b/auto-generated-sdk/docs/PubCalculationParametersRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**{str: (PubCalculationParameters,)}**](PubCalculationParameters.md) | List of calculation parameters. | [optional]
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/QuantAllUniversalScreenParameters.md b/auto-generated-sdk/docs/QuantAllUniversalScreenParameters.md
new file mode 100644
index 00000000..059356ca
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantAllUniversalScreenParameters.md
@@ -0,0 +1,11 @@
+# QuantAllUniversalScreenParameters
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**source** | **str** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantCalculationParameters.md b/auto-generated-sdk/docs/QuantCalculationParameters.md
index e29dc1f5..e5984a30 100644
--- a/auto-generated-sdk/docs/QuantCalculationParameters.md
+++ b/auto-generated-sdk/docs/QuantCalculationParameters.md
@@ -4,15 +4,9 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**screening_expression_universe** | [**QuantScreeningExpressionUniverse**](QuantScreeningExpressionUniverse.md) | | [optional]
-**universal_screen_universe** | [**QuantUniversalScreenUniverse**](QuantUniversalScreenUniverse.md) | | [optional]
-**identifier_universe** | [**QuantIdentifierUniverse**](QuantIdentifierUniverse.md) | | [optional]
-**fds_date** | [**QuantFdsDate**](QuantFdsDate.md) | | [optional]
-**date_list** | [**QuantDateList**](QuantDateList.md) | | [optional]
-**screening_expression** | [**[QuantScreeningExpression]**](QuantScreeningExpression.md) | | [optional]
-**fql_expression** | [**[QuantFqlExpression]**](QuantFqlExpression.md) | | [optional]
-**universal_screen_parameter** | [**[QuantUniversalScreenParameter]**](QuantUniversalScreenParameter.md) | | [optional]
-**all_universal_screen_parameters** | **[object]** | | [optional]
+**universe** | **object** | | [optional]
+**dates** | **object** | | [optional]
+**formulas** | **[object]** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/QuantCalculationsApi.md b/auto-generated-sdk/docs/QuantCalculationsApi.md
index bad86237..b1c4ca44 100644
--- a/auto-generated-sdk/docs/QuantCalculationsApi.md
+++ b/auto-generated-sdk/docs/QuantCalculationsApi.md
@@ -515,53 +515,17 @@ with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
quant_calculation_parameters_root = QuantCalculationParametersRoot(
data={
"key": QuantCalculationParameters(
- screening_expression_universe=QuantScreeningExpressionUniverse(
- universe_expr="universe_expr_example",
- universe_type="Equity",
- security_expr="security_expr_example",
- ),
- universal_screen_universe=QuantUniversalScreenUniverse(
- screen="screen_example",
- ),
- identifier_universe=QuantIdentifierUniverse(
+ universe=
universe_type="Equity",
identifiers=[
"identifiers_example",
],
- ),
- fds_date=QuantFdsDate(
- start_date="start_date_example",
- end_date="end_date_example",
- frequency="frequency_example",
- calendar="calendar_example",
- ),
- date_list=QuantDateList(
- dates=[
- "dates_example",
- ],
- frequency="frequency_example",
- calendar="calendar_example",
- ),
- screening_expression=[
- QuantScreeningExpression(
- expr="expr_example",
- name="name_example",
- ),
- ],
- fql_expression=[
- QuantFqlExpression(
- expr="expr_example",
- name="name_example",
- ),
- ],
- universal_screen_parameter=[
- QuantUniversalScreenParameter(
- reference_name="reference_name_example",
- name="name_example",
- ),
- ],
- all_universal_screen_parameters=[
- {},
+ ,
+ dates=
+ dates=[],
+ ,
+ formulas=[
+ ,
],
),
},
@@ -675,53 +639,17 @@ with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
quant_calculation_parameters_root = QuantCalculationParametersRoot(
data={
"key": QuantCalculationParameters(
- screening_expression_universe=QuantScreeningExpressionUniverse(
- universe_expr="universe_expr_example",
- universe_type="Equity",
- security_expr="security_expr_example",
- ),
- universal_screen_universe=QuantUniversalScreenUniverse(
- screen="screen_example",
- ),
- identifier_universe=QuantIdentifierUniverse(
+ universe=
universe_type="Equity",
identifiers=[
"identifiers_example",
],
- ),
- fds_date=QuantFdsDate(
- start_date="start_date_example",
- end_date="end_date_example",
- frequency="frequency_example",
- calendar="calendar_example",
- ),
- date_list=QuantDateList(
- dates=[
- "dates_example",
- ],
- frequency="frequency_example",
- calendar="calendar_example",
- ),
- screening_expression=[
- QuantScreeningExpression(
- expr="expr_example",
- name="name_example",
- ),
- ],
- fql_expression=[
- QuantFqlExpression(
- expr="expr_example",
- name="name_example",
- ),
- ],
- universal_screen_parameter=[
- QuantUniversalScreenParameter(
- reference_name="reference_name_example",
- name="name_example",
- ),
- ],
- all_universal_screen_parameters=[
- {},
+ ,
+ dates=
+ dates=[],
+ ,
+ formulas=[
+ ,
],
),
},
diff --git a/auto-generated-sdk/docs/QuantDate.md b/auto-generated-sdk/docs/QuantDate.md
new file mode 100644
index 00000000..b2871d5a
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantDate.md
@@ -0,0 +1,13 @@
+# QuantDate
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**source** | **str** | |
+**frequency** | **str** | |
+**calendar** | **str** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantDateList.md b/auto-generated-sdk/docs/QuantDateList.md
index d26c4568..20e419cb 100644
--- a/auto-generated-sdk/docs/QuantDateList.md
+++ b/auto-generated-sdk/docs/QuantDateList.md
@@ -4,6 +4,7 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**source** | **str** | |
**frequency** | **str** | |
**calendar** | **str** | |
**dates** | **[str]** | | [optional]
diff --git a/auto-generated-sdk/docs/QuantDateListObsolete.md b/auto-generated-sdk/docs/QuantDateListObsolete.md
new file mode 100644
index 00000000..d1144e07
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantDateListObsolete.md
@@ -0,0 +1,13 @@
+# QuantDateListObsolete
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**frequency** | **str** | |
+**calendar** | **str** | |
+**dates** | **[str]** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantFdsDate.md b/auto-generated-sdk/docs/QuantFdsDate.md
index 6e486ea7..d2569850 100644
--- a/auto-generated-sdk/docs/QuantFdsDate.md
+++ b/auto-generated-sdk/docs/QuantFdsDate.md
@@ -6,6 +6,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**start_date** | **str** | |
**end_date** | **str** | |
+**source** | **str** | |
**frequency** | **str** | |
**calendar** | **str** | |
diff --git a/auto-generated-sdk/docs/QuantFdsDateObsolete.md b/auto-generated-sdk/docs/QuantFdsDateObsolete.md
new file mode 100644
index 00000000..df79a7f3
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantFdsDateObsolete.md
@@ -0,0 +1,14 @@
+# QuantFdsDateObsolete
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**start_date** | **str** | |
+**end_date** | **str** | |
+**frequency** | **str** | |
+**calendar** | **str** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantFormula.md b/auto-generated-sdk/docs/QuantFormula.md
new file mode 100644
index 00000000..c85c0d69
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantFormula.md
@@ -0,0 +1,11 @@
+# QuantFormula
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**source** | **str** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantFqlExpression.md b/auto-generated-sdk/docs/QuantFqlExpression.md
index 9b7be5ab..6a0d82fe 100644
--- a/auto-generated-sdk/docs/QuantFqlExpression.md
+++ b/auto-generated-sdk/docs/QuantFqlExpression.md
@@ -6,6 +6,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**expr** | **str** | |
**name** | **str** | |
+**source** | **str** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/QuantFqlExpressionObsolete.md b/auto-generated-sdk/docs/QuantFqlExpressionObsolete.md
new file mode 100644
index 00000000..5d37f7bb
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantFqlExpressionObsolete.md
@@ -0,0 +1,12 @@
+# QuantFqlExpressionObsolete
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**expr** | **str** | |
+**name** | **str** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantIdentifierUniverse.md b/auto-generated-sdk/docs/QuantIdentifierUniverse.md
index ff2884d2..0c3a7f97 100644
--- a/auto-generated-sdk/docs/QuantIdentifierUniverse.md
+++ b/auto-generated-sdk/docs/QuantIdentifierUniverse.md
@@ -6,6 +6,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**universe_type** | **str** | |
**identifiers** | **[str]** | |
+**source** | **str** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/QuantIdentifierUniverseObsolete.md b/auto-generated-sdk/docs/QuantIdentifierUniverseObsolete.md
new file mode 100644
index 00000000..07b169f3
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantIdentifierUniverseObsolete.md
@@ -0,0 +1,13 @@
+# QuantIdentifierUniverseObsolete
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**universe_type** | **str** | |
+**identifiers** | **[str]** | |
+**source** | **str** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantScreeningExpression.md b/auto-generated-sdk/docs/QuantScreeningExpression.md
index 0f9b78ba..60f77b9f 100644
--- a/auto-generated-sdk/docs/QuantScreeningExpression.md
+++ b/auto-generated-sdk/docs/QuantScreeningExpression.md
@@ -6,6 +6,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**expr** | **str** | |
**name** | **str** | |
+**source** | **str** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/QuantScreeningExpressionObsolete.md b/auto-generated-sdk/docs/QuantScreeningExpressionObsolete.md
new file mode 100644
index 00000000..917999fd
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantScreeningExpressionObsolete.md
@@ -0,0 +1,12 @@
+# QuantScreeningExpressionObsolete
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**expr** | **str** | |
+**name** | **str** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantScreeningExpressionUniverse.md b/auto-generated-sdk/docs/QuantScreeningExpressionUniverse.md
index fda3e5b8..54c9750e 100644
--- a/auto-generated-sdk/docs/QuantScreeningExpressionUniverse.md
+++ b/auto-generated-sdk/docs/QuantScreeningExpressionUniverse.md
@@ -6,6 +6,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**universe_expr** | **str** | |
**universe_type** | **str** | |
+**source** | **str** | |
**security_expr** | **str** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/QuantScreeningExpressionUniverseObsolete.md b/auto-generated-sdk/docs/QuantScreeningExpressionUniverseObsolete.md
new file mode 100644
index 00000000..f7bcdddc
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantScreeningExpressionUniverseObsolete.md
@@ -0,0 +1,14 @@
+# QuantScreeningExpressionUniverseObsolete
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**universe_expr** | **str** | |
+**universe_type** | **str** | |
+**security_expr** | **str** | | [optional]
+**source** | **str** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantUniversalScreenParameter.md b/auto-generated-sdk/docs/QuantUniversalScreenParameter.md
index b639c422..7124de5b 100644
--- a/auto-generated-sdk/docs/QuantUniversalScreenParameter.md
+++ b/auto-generated-sdk/docs/QuantUniversalScreenParameter.md
@@ -6,6 +6,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**reference_name** | **str** | |
**name** | **str** | |
+**source** | **str** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/QuantUniversalScreenParameterObsolete.md b/auto-generated-sdk/docs/QuantUniversalScreenParameterObsolete.md
new file mode 100644
index 00000000..025fad24
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantUniversalScreenParameterObsolete.md
@@ -0,0 +1,12 @@
+# QuantUniversalScreenParameterObsolete
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**reference_name** | **str** | |
+**name** | **str** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantUniversalScreenUniverse.md b/auto-generated-sdk/docs/QuantUniversalScreenUniverse.md
index 68097ffd..7a7c6d83 100644
--- a/auto-generated-sdk/docs/QuantUniversalScreenUniverse.md
+++ b/auto-generated-sdk/docs/QuantUniversalScreenUniverse.md
@@ -5,6 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**screen** | **str** | |
+**source** | **str** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/QuantUniversalScreenUniverseObsolete.md b/auto-generated-sdk/docs/QuantUniversalScreenUniverseObsolete.md
new file mode 100644
index 00000000..87227b51
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantUniversalScreenUniverseObsolete.md
@@ -0,0 +1,12 @@
+# QuantUniversalScreenUniverseObsolete
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**screen** | **str** | |
+**source** | **str** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/QuantUniverse.md b/auto-generated-sdk/docs/QuantUniverse.md
new file mode 100644
index 00000000..f5ffb94a
--- /dev/null
+++ b/auto-generated-sdk/docs/QuantUniverse.md
@@ -0,0 +1,11 @@
+# QuantUniverse
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**source** | **str** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/ReturnType.md b/auto-generated-sdk/docs/ReturnType.md
new file mode 100644
index 00000000..952be891
--- /dev/null
+++ b/auto-generated-sdk/docs/ReturnType.md
@@ -0,0 +1,12 @@
+# ReturnType
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | | [optional]
+**id** | **str** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/SPARAccounts.md b/auto-generated-sdk/docs/SPARAccounts.md
new file mode 100644
index 00000000..8688cf9c
--- /dev/null
+++ b/auto-generated-sdk/docs/SPARAccounts.md
@@ -0,0 +1,11 @@
+# SPARAccounts
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**returns_type** | [**[ReturnType]**](ReturnType.md) | List of SPAR returnsType | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/SPARAccountsRoot.md b/auto-generated-sdk/docs/SPARAccountsRoot.md
new file mode 100644
index 00000000..5262ea00
--- /dev/null
+++ b/auto-generated-sdk/docs/SPARAccountsRoot.md
@@ -0,0 +1,12 @@
+# SPARAccountsRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**SPARAccounts**](SPARAccounts.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/SPARBenchmarkRoot.md b/auto-generated-sdk/docs/SPARBenchmarkRoot.md
index 8777312b..c6a6d837 100644
--- a/auto-generated-sdk/docs/SPARBenchmarkRoot.md
+++ b/auto-generated-sdk/docs/SPARBenchmarkRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**SPARBenchmark**](SPARBenchmark.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/TemplateContentTypes.md b/auto-generated-sdk/docs/TemplateContentTypes.md
new file mode 100644
index 00000000..7a747e3d
--- /dev/null
+++ b/auto-generated-sdk/docs/TemplateContentTypes.md
@@ -0,0 +1,13 @@
+# TemplateContentTypes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**mandatory** | **[str]** | Template mandatory fields | [optional]
+**optional** | **[str]** | Template optional fields | [optional]
+**locked** | **[str]** | Template locked fields | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/TemplatedPAComponentParameters.md b/auto-generated-sdk/docs/TemplatedPAComponentParameters.md
new file mode 100644
index 00000000..8391fd05
--- /dev/null
+++ b/auto-generated-sdk/docs/TemplatedPAComponentParameters.md
@@ -0,0 +1,14 @@
+# TemplatedPAComponentParameters
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**directory** | **str** | Directory to create templated components |
+**parent_template_id** | **str** | Parent template id |
+**description** | **str** | Component description. | [optional]
+**component_data** | [**PAComponentData**](PAComponentData.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/TemplatedPAComponentParametersRoot.md b/auto-generated-sdk/docs/TemplatedPAComponentParametersRoot.md
new file mode 100644
index 00000000..aee281d5
--- /dev/null
+++ b/auto-generated-sdk/docs/TemplatedPAComponentParametersRoot.md
@@ -0,0 +1,12 @@
+# TemplatedPAComponentParametersRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**TemplatedPAComponentParameters**](TemplatedPAComponentParameters.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/TemplatedPAComponentSummary.md b/auto-generated-sdk/docs/TemplatedPAComponentSummary.md
new file mode 100644
index 00000000..f6f921a0
--- /dev/null
+++ b/auto-generated-sdk/docs/TemplatedPAComponentSummary.md
@@ -0,0 +1,14 @@
+# TemplatedPAComponentSummary
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**description** | **str** | | [optional]
+**name** | **str** | | [optional]
+**parent_template_id** | **str** | | [optional]
+**type** | **str** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/TemplatedPAComponentSummaryRoot.md b/auto-generated-sdk/docs/TemplatedPAComponentSummaryRoot.md
new file mode 100644
index 00000000..0091253b
--- /dev/null
+++ b/auto-generated-sdk/docs/TemplatedPAComponentSummaryRoot.md
@@ -0,0 +1,12 @@
+# TemplatedPAComponentSummaryRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**{str: (TemplatedPAComponentSummary,)}**](TemplatedPAComponentSummary.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/TemplatedPAComponentUpdateParameters.md b/auto-generated-sdk/docs/TemplatedPAComponentUpdateParameters.md
new file mode 100644
index 00000000..f5279b80
--- /dev/null
+++ b/auto-generated-sdk/docs/TemplatedPAComponentUpdateParameters.md
@@ -0,0 +1,13 @@
+# TemplatedPAComponentUpdateParameters
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**parent_template_id** | **str** | Parent template id | [optional]
+**description** | **str** | Component description. | [optional]
+**component_data** | [**PAComponentData**](PAComponentData.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/TemplatedPAComponentUpdateParametersRoot.md b/auto-generated-sdk/docs/TemplatedPAComponentUpdateParametersRoot.md
new file mode 100644
index 00000000..47a5ae0b
--- /dev/null
+++ b/auto-generated-sdk/docs/TemplatedPAComponentUpdateParametersRoot.md
@@ -0,0 +1,12 @@
+# TemplatedPAComponentUpdateParametersRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**TemplatedPAComponentUpdateParameters**](TemplatedPAComponentUpdateParameters.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/TemplatedPAComponentsApi.md b/auto-generated-sdk/docs/TemplatedPAComponentsApi.md
new file mode 100644
index 00000000..b6e42825
--- /dev/null
+++ b/auto-generated-sdk/docs/TemplatedPAComponentsApi.md
@@ -0,0 +1,371 @@
+
+# fds.analyticsapi.engines.TemplatedPAComponentsApi
+
+All URIs are relative to *https://api.factset.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_templated_pa_components**](TemplatedPAComponentsApi.md#create_templated_pa_components) | **POST** /analytics/engines/pa/v3/templated-components | Create templated PA component
+[**delete_templated_pa_components**](TemplatedPAComponentsApi.md#delete_templated_pa_components) | **DELETE** /analytics/engines/pa/v3/templated-components/{id} | Delete templated PA component
+[**update_templated_pa_components**](TemplatedPAComponentsApi.md#update_templated_pa_components) | **PUT** /analytics/engines/pa/v3/templated-components/{id} | Update templated PA component
+
+
+# **create_templated_pa_components**
+> TemplatedPAComponentSummaryRoot create_templated_pa_components(templated_pa_component_parameters_root)
+
+Create templated PA component
+
+This endpoint creates new component based off of linked PA template or unlinked PA template.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import templated_pa_components_api
+from fds.analyticsapi.engines.model.templated_pa_component_summary_root import TemplatedPAComponentSummaryRoot
+from fds.analyticsapi.engines.model.templated_pa_component_parameters_root import TemplatedPAComponentParametersRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = templated_pa_components_api.TemplatedPAComponentsApi(api_client)
+ templated_pa_component_parameters_root = TemplatedPAComponentParametersRoot(
+ data=TemplatedPAComponentParameters(
+ directory="directory_example",
+ parent_template_id="parent_template_id_example",
+ description="description_example",
+ component_data=PAComponentData(
+ accounts=[
+ PAIdentifier(
+ id="id_example",
+ holdingsmode="holdingsmode_example",
+ ),
+ ],
+ benchmarks=[
+ PAIdentifier(
+ id="id_example",
+ holdingsmode="holdingsmode_example",
+ ),
+ ],
+ groups=[
+ PACalculationGroup(
+ id="id_example",
+ ),
+ ],
+ columns=[
+ PACalculationColumn(
+ id="id_example",
+ statistics=[
+ "statistics_example",
+ ],
+ ),
+ ],
+ dates=PADateParameters(
+ startdate="startdate_example",
+ enddate="enddate_example",
+ frequency="frequency_example",
+ ),
+ currencyisocode="currencyisocode_example",
+ componentdetail="componentdetail_example",
+ ),
+ ),
+ meta=None,
+ ) # TemplatedPAComponentParametersRoot | Request Parameters
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Create templated PA component
+ api_response = api_instance.create_templated_pa_components(templated_pa_component_parameters_root)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling TemplatedPAComponentsApi->create_templated_pa_components: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **templated_pa_component_parameters_root** | [**TemplatedPAComponentParametersRoot**](TemplatedPAComponentParametersRoot.md)| Request Parameters |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**TemplatedPAComponentSummaryRoot**](TemplatedPAComponentSummaryRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: text/plain, application/json, text/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Expected response, templated PA component created successfully. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Template not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_templated_pa_components**
+> delete_templated_pa_components(id)
+
+Delete templated PA component
+
+This endpoint deletes an existing templated PA component
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import templated_pa_components_api
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = templated_pa_components_api.TemplatedPAComponentsApi(api_client)
+ id = "id_example" # str | Unique identifier for a templated PA component
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Delete templated PA component
+ api_instance.delete_templated_pa_components(id)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling TemplatedPAComponentsApi->delete_templated_pa_components: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| Unique identifier for a templated PA component |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: None (empty response body)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: text/plain, application/json, text/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Expected response, deleted the templated PA component successfully. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Component not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_templated_pa_components**
+> TemplatedPAComponentSummaryRoot update_templated_pa_components(id, templated_pa_component_update_parameters_root)
+
+Update templated PA component
+
+This endpoint allows the user to change the request body from an existing templated PA component.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import templated_pa_components_api
+from fds.analyticsapi.engines.model.templated_pa_component_summary_root import TemplatedPAComponentSummaryRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from fds.analyticsapi.engines.model.templated_pa_component_update_parameters_root import TemplatedPAComponentUpdateParametersRoot
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = templated_pa_components_api.TemplatedPAComponentsApi(api_client)
+ id = "id_example" # str | Unique identifier for a templated PA component
+ templated_pa_component_update_parameters_root = TemplatedPAComponentUpdateParametersRoot(
+ data=TemplatedPAComponentUpdateParameters(
+ parent_template_id="parent_template_id_example",
+ description="description_example",
+ component_data=PAComponentData(
+ accounts=[
+ PAIdentifier(
+ id="id_example",
+ holdingsmode="holdingsmode_example",
+ ),
+ ],
+ benchmarks=[
+ PAIdentifier(
+ id="id_example",
+ holdingsmode="holdingsmode_example",
+ ),
+ ],
+ groups=[
+ PACalculationGroup(
+ id="id_example",
+ ),
+ ],
+ columns=[
+ PACalculationColumn(
+ id="id_example",
+ statistics=[
+ "statistics_example",
+ ],
+ ),
+ ],
+ dates=PADateParameters(
+ startdate="startdate_example",
+ enddate="enddate_example",
+ frequency="frequency_example",
+ ),
+ currencyisocode="currencyisocode_example",
+ componentdetail="componentdetail_example",
+ ),
+ ),
+ meta=None,
+ ) # TemplatedPAComponentUpdateParametersRoot | Request Parameters
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Update templated PA component
+ api_response = api_instance.update_templated_pa_components(id, templated_pa_component_update_parameters_root)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling TemplatedPAComponentsApi->update_templated_pa_components: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| Unique identifier for a templated PA component |
+ **templated_pa_component_update_parameters_root** | [**TemplatedPAComponentUpdateParametersRoot**](TemplatedPAComponentUpdateParametersRoot.md)| Request Parameters |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**TemplatedPAComponentSummaryRoot**](TemplatedPAComponentSummaryRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Expected response, updated successfully. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Component or template not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplate.md b/auto-generated-sdk/docs/UnlinkedPATemplate.md
new file mode 100644
index 00000000..933dd679
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplate.md
@@ -0,0 +1,25 @@
+# UnlinkedPATemplate
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**directory** | **str** | | [optional]
+**id** | **str** | | [optional]
+**template_type_id** | **str** | | [optional]
+**snapshot** | **bool** | | [optional]
+**accounts** | [**[PAIdentifier]**](PAIdentifier.md) | | [optional]
+**benchmarks** | [**[PAIdentifier]**](PAIdentifier.md) | | [optional]
+**columns** | [**[PACalculationColumn]**](PACalculationColumn.md) | | [optional]
+**dates** | [**PADateParameters**](PADateParameters.md) | | [optional]
+**groups** | [**[PACalculationGroup]**](PACalculationGroup.md) | | [optional]
+**currencyisocode** | **str** | | [optional]
+**componentdetail** | **str** | | [optional]
+**content** | [**TemplateContentTypes**](TemplateContentTypes.md) | | [optional]
+**description** | **str** | | [optional]
+**name** | **str** | | [optional]
+**category** | **str** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndType.md b/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndType.md
new file mode 100644
index 00000000..77d74bc4
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndType.md
@@ -0,0 +1,12 @@
+# UnlinkedPATemplateCategoryAndType
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**category** | **str** | Unlinked template category | [optional]
+**name** | **str** | Unlinked template type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndTypeDetails.md b/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndTypeDetails.md
new file mode 100644
index 00000000..9ff08424
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndTypeDetails.md
@@ -0,0 +1,13 @@
+# UnlinkedPATemplateCategoryAndTypeDetails
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Type Id | [optional]
+**category** | **str** | Unlinked template category | [optional]
+**name** | **str** | Unlinked template type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndTypeDetailsRoot.md b/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndTypeDetailsRoot.md
new file mode 100644
index 00000000..d2843fff
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndTypeDetailsRoot.md
@@ -0,0 +1,12 @@
+# UnlinkedPATemplateCategoryAndTypeDetailsRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**UnlinkedPATemplateCategoryAndTypeDetails**](UnlinkedPATemplateCategoryAndTypeDetails.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndTypeRoot.md b/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndTypeRoot.md
new file mode 100644
index 00000000..aa32d0f2
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateCategoryAndTypeRoot.md
@@ -0,0 +1,12 @@
+# UnlinkedPATemplateCategoryAndTypeRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**{str: (UnlinkedPATemplateCategoryAndType,)}**](UnlinkedPATemplateCategoryAndType.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateParameters.md b/auto-generated-sdk/docs/UnlinkedPATemplateParameters.md
new file mode 100644
index 00000000..ed9dfc4f
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateParameters.md
@@ -0,0 +1,21 @@
+# UnlinkedPATemplateParameters
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**directory** | **str** | The directory to create an unlinked PA template |
+**template_type_id** | **str** | Template type id |
+**description** | **str** | Template description | [optional]
+**accounts** | [**[PAIdentifier]**](PAIdentifier.md) | List of accounts | [optional]
+**benchmarks** | [**[PAIdentifier]**](PAIdentifier.md) | List of benchmarks | [optional]
+**columns** | [**[PACalculationColumn]**](PACalculationColumn.md) | List of columns for the PA calculation | [optional]
+**dates** | [**PADateParameters**](PADateParameters.md) | | [optional]
+**groups** | [**[PACalculationGroup]**](PACalculationGroup.md) | List of groupings for the PA calculation | [optional]
+**currencyisocode** | **str** | Currency ISO code for calculation. | [optional]
+**componentdetail** | **str** | PA storage type. It can be GROUPS or TOTALS or SECURITIES. | [optional]
+**content** | [**TemplateContentTypes**](TemplateContentTypes.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateParametersRoot.md b/auto-generated-sdk/docs/UnlinkedPATemplateParametersRoot.md
new file mode 100644
index 00000000..cc59019f
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateParametersRoot.md
@@ -0,0 +1,12 @@
+# UnlinkedPATemplateParametersRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**UnlinkedPATemplateParameters**](UnlinkedPATemplateParameters.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateRoot.md b/auto-generated-sdk/docs/UnlinkedPATemplateRoot.md
new file mode 100644
index 00000000..6f5d01d5
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateRoot.md
@@ -0,0 +1,12 @@
+# UnlinkedPATemplateRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**UnlinkedPATemplate**](UnlinkedPATemplate.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateSummary.md b/auto-generated-sdk/docs/UnlinkedPATemplateSummary.md
new file mode 100644
index 00000000..4772a4f8
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateSummary.md
@@ -0,0 +1,13 @@
+# UnlinkedPATemplateSummary
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**description** | **str** | | [optional]
+**name** | **str** | | [optional]
+**category** | **str** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateSummaryRoot.md b/auto-generated-sdk/docs/UnlinkedPATemplateSummaryRoot.md
new file mode 100644
index 00000000..b198130f
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateSummaryRoot.md
@@ -0,0 +1,12 @@
+# UnlinkedPATemplateSummaryRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**{str: (UnlinkedPATemplateSummary,)}**](UnlinkedPATemplateSummary.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateUpdateParameters.md b/auto-generated-sdk/docs/UnlinkedPATemplateUpdateParameters.md
new file mode 100644
index 00000000..c3e44fb2
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateUpdateParameters.md
@@ -0,0 +1,19 @@
+# UnlinkedPATemplateUpdateParameters
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**description** | **str** | Template description | [optional]
+**accounts** | [**[PAIdentifier]**](PAIdentifier.md) | List of accounts | [optional]
+**benchmarks** | [**[PAIdentifier]**](PAIdentifier.md) | List of benchmarks | [optional]
+**columns** | [**[PACalculationColumn]**](PACalculationColumn.md) | List of columns for the PA calculation | [optional]
+**dates** | [**PADateParameters**](PADateParameters.md) | | [optional]
+**groups** | [**[PACalculationGroup]**](PACalculationGroup.md) | List of groupings for the PA calculation | [optional]
+**currencyisocode** | **str** | Currency ISO code for calculation. | [optional]
+**componentdetail** | **str** | PA storage type. It can be GROUPS or TOTALS or SECURITIES. | [optional]
+**content** | [**TemplateContentTypes**](TemplateContentTypes.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplateUpdateParametersRoot.md b/auto-generated-sdk/docs/UnlinkedPATemplateUpdateParametersRoot.md
new file mode 100644
index 00000000..9ab97760
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplateUpdateParametersRoot.md
@@ -0,0 +1,12 @@
+# UnlinkedPATemplateUpdateParametersRoot
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**UnlinkedPATemplateUpdateParameters**](UnlinkedPATemplateUpdateParameters.md) | |
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/auto-generated-sdk/docs/UnlinkedPATemplatesApi.md b/auto-generated-sdk/docs/UnlinkedPATemplatesApi.md
new file mode 100644
index 00000000..80e2b1df
--- /dev/null
+++ b/auto-generated-sdk/docs/UnlinkedPATemplatesApi.md
@@ -0,0 +1,754 @@
+
+# fds.analyticsapi.engines.UnlinkedPATemplatesApi
+
+All URIs are relative to *https://api.factset.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_unlinked_pa_templates**](UnlinkedPATemplatesApi.md#create_unlinked_pa_templates) | **POST** /analytics/engines/pa/v3/unlinked-templates | Create unlinked PA template
+[**delete_unlinked_pa_templates**](UnlinkedPATemplatesApi.md#delete_unlinked_pa_templates) | **DELETE** /analytics/engines/pa/v3/unlinked-templates/{id} | Delete unlinked PA template
+[**get_default_unlinked_pa_template_types**](UnlinkedPATemplatesApi.md#get_default_unlinked_pa_template_types) | **GET** /analytics/engines/pa/v3/unlinked-templates/template-types | Get default unlinked PA template types.
+[**get_details_type**](UnlinkedPATemplatesApi.md#get_details_type) | **GET** /analytics/engines/pa/v3/unlinked-templates/template-types/{id} | Get unlinked PA template type details by id.
+[**get_unlinked_pa_templates**](UnlinkedPATemplatesApi.md#get_unlinked_pa_templates) | **GET** /analytics/engines/pa/v3/unlinked-templates | Get unlinked PA templates
+[**get_unlinked_pa_templates_by_id**](UnlinkedPATemplatesApi.md#get_unlinked_pa_templates_by_id) | **GET** /analytics/engines/pa/v3/unlinked-templates/{id} | Get unlinked PA template details by id
+[**update_unlinked_pa_templates**](UnlinkedPATemplatesApi.md#update_unlinked_pa_templates) | **PUT** /analytics/engines/pa/v3/unlinked-templates/{id} | Update unlinked PA template
+
+
+# **create_unlinked_pa_templates**
+> UnlinkedPATemplateSummaryRoot create_unlinked_pa_templates(unlinked_pa_template_parameters_root)
+
+Create unlinked PA template
+
+This endpoint creates a template which is not linked to any specific PA3 tile. Remarks: * Mandatory, optional and locked fields can be \"accounts\", \"benchmarks\", \"groups\", \"columns\", \"dates\", \"currencyisocode\" and \"componentdetail\". * Mandatory and locked strings are mutually exclusive.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import unlinked_pa_templates_api
+from fds.analyticsapi.engines.model.unlinked_pa_template_summary_root import UnlinkedPATemplateSummaryRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_parameters_root import UnlinkedPATemplateParametersRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = unlinked_pa_templates_api.UnlinkedPATemplatesApi(api_client)
+ unlinked_pa_template_parameters_root = UnlinkedPATemplateParametersRoot(
+ data=UnlinkedPATemplateParameters(
+ directory="directory_example",
+ template_type_id="template_type_id_example",
+ description="description_example",
+ accounts=[
+ PAIdentifier(
+ id="id_example",
+ holdingsmode="holdingsmode_example",
+ ),
+ ],
+ benchmarks=[
+ PAIdentifier(
+ id="id_example",
+ holdingsmode="holdingsmode_example",
+ ),
+ ],
+ columns=[
+ PACalculationColumn(
+ id="id_example",
+ statistics=[
+ "statistics_example",
+ ],
+ ),
+ ],
+ dates=PADateParameters(
+ startdate="startdate_example",
+ enddate="enddate_example",
+ frequency="frequency_example",
+ ),
+ groups=[
+ PACalculationGroup(
+ id="id_example",
+ ),
+ ],
+ currencyisocode="currencyisocode_example",
+ componentdetail="componentdetail_example",
+ content=TemplateContentTypes(
+ mandatory=[
+ "mandatory_example",
+ ],
+ optional=[
+ "optional_example",
+ ],
+ locked=[
+ "locked_example",
+ ],
+ ),
+ ),
+ meta=None,
+ ) # UnlinkedPATemplateParametersRoot | Request Parameters
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Create unlinked PA template
+ api_response = api_instance.create_unlinked_pa_templates(unlinked_pa_template_parameters_root)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling UnlinkedPATemplatesApi->create_unlinked_pa_templates: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **unlinked_pa_template_parameters_root** | [**UnlinkedPATemplateParametersRoot**](UnlinkedPATemplateParametersRoot.md)| Request Parameters |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**UnlinkedPATemplateSummaryRoot**](UnlinkedPATemplateSummaryRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Expected response, created a unlinked PA template. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_unlinked_pa_templates**
+> delete_unlinked_pa_templates(id)
+
+Delete unlinked PA template
+
+This endpoint deletes an existing unliked PA template.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import unlinked_pa_templates_api
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = unlinked_pa_templates_api.UnlinkedPATemplatesApi(api_client)
+ id = "id_example" # str | Unique identifier for an unlinked PA template
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Delete unlinked PA template
+ api_instance.delete_unlinked_pa_templates(id)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling UnlinkedPATemplatesApi->delete_unlinked_pa_templates: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| Unique identifier for an unlinked PA template |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: None (empty response body)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Expected response, deleted the unlinked PA template successfully. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Template not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_default_unlinked_pa_template_types**
+> UnlinkedPATemplateCategoryAndTypeRoot get_default_unlinked_pa_template_types()
+
+Get default unlinked PA template types.
+
+This endpoint fetches default unlinked PA template types.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import unlinked_pa_templates_api
+from fds.analyticsapi.engines.model.unlinked_pa_template_category_and_type_root import UnlinkedPATemplateCategoryAndTypeRoot
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = unlinked_pa_templates_api.UnlinkedPATemplatesApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Get default unlinked PA template types.
+ api_response = api_instance.get_default_unlinked_pa_template_types()
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling UnlinkedPATemplatesApi->get_default_unlinked_pa_template_types: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**UnlinkedPATemplateCategoryAndTypeRoot**](UnlinkedPATemplateCategoryAndTypeRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Expected response, default unlinked PA template types | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_details_type**
+> UnlinkedPATemplateCategoryAndTypeDetailsRoot get_details_type(id)
+
+Get unlinked PA template type details by id.
+
+This endpoint fetches the unlinked PA template type details.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import unlinked_pa_templates_api
+from fds.analyticsapi.engines.model.unlinked_pa_template_category_and_type_details_root import UnlinkedPATemplateCategoryAndTypeDetailsRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = unlinked_pa_templates_api.UnlinkedPATemplatesApi(api_client)
+ id = "id_example" # str | Unique identifier for an unlinked PA template type
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get unlinked PA template type details by id.
+ api_response = api_instance.get_details_type(id)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling UnlinkedPATemplatesApi->get_details_type: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| Unique identifier for an unlinked PA template type |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**UnlinkedPATemplateCategoryAndTypeDetailsRoot**](UnlinkedPATemplateCategoryAndTypeDetailsRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Expected response, details of the unlinked PA template type | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Unlinked PA template type not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_unlinked_pa_templates**
+> UnlinkedPATemplateSummaryRoot get_unlinked_pa_templates()
+
+Get unlinked PA templates
+
+This endpoint returns the list of unlinked PA templates.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import unlinked_pa_templates_api
+from fds.analyticsapi.engines.model.unlinked_pa_template_summary_root import UnlinkedPATemplateSummaryRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = unlinked_pa_templates_api.UnlinkedPATemplatesApi(api_client)
+ directory = "directory_example" # str | Get unlinked PA templates in path. (optional)
+ category = "category_example" # str | Get unlinked PA templates by category. (optional)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ # Get unlinked PA templates
+ api_response = api_instance.get_unlinked_pa_templates(directory=directory, category=category)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling UnlinkedPATemplatesApi->get_unlinked_pa_templates: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **directory** | **str**| Get unlinked PA templates in path. | [optional]
+ **category** | **str**| Get unlinked PA templates by category. | [optional]
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**UnlinkedPATemplateSummaryRoot**](UnlinkedPATemplateSummaryRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Expected response, returns a list of unlinked PA templates. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_unlinked_pa_templates_by_id**
+> UnlinkedPATemplateRoot get_unlinked_pa_templates_by_id(id)
+
+Get unlinked PA template details by id
+
+This endpoint fetches the template settings.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import unlinked_pa_templates_api
+from fds.analyticsapi.engines.model.unlinked_pa_template_root import UnlinkedPATemplateRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = unlinked_pa_templates_api.UnlinkedPATemplatesApi(api_client)
+ id = "id_example" # str | Unique identifier for an unlinked PA template
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get unlinked PA template details by id
+ api_response = api_instance.get_unlinked_pa_templates_by_id(id)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling UnlinkedPATemplatesApi->get_unlinked_pa_templates_by_id: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| Unique identifier for an unlinked PA template |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**UnlinkedPATemplateRoot**](UnlinkedPATemplateRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Expected response, get details of the unlinked PA template. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Template not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_unlinked_pa_templates**
+> UnlinkedPATemplateSummaryRoot update_unlinked_pa_templates(id, unlinked_pa_template_update_parameters_root)
+
+Update unlinked PA template
+
+This endpoint updates an existing unlinked PA template. Remarks: * Mandatory, optional and locked fields can be \"accounts\", \"benchmarks\", \"groups\", \"columns\", \"dates\", \"currencyisocode\" and \"componentdetail\". * Mandatory and locked strings are mutually exclusive.
+
+### Example
+
+* Basic Authentication (Basic):
+* Bearer Authentication (Bearer):
+```python
+import time
+import fds.analyticsapi.engines
+from fds.analyticsapi.engines.api import unlinked_pa_templates_api
+from fds.analyticsapi.engines.model.unlinked_pa_template_summary_root import UnlinkedPATemplateSummaryRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_update_parameters_root import UnlinkedPATemplateUpdateParametersRoot
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from pprint import pprint
+# Defining the host is optional and defaults to https://api.factset.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = fds.analyticsapi.engines.Configuration(
+ host = "https://api.factset.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure HTTP basic authorization: Basic
+configuration = fds.analyticsapi.engines.Configuration(
+ username = 'YOUR_USERNAME',
+ password = 'YOUR_PASSWORD'
+)
+
+# Configure Bearer authorization: Bearer
+configuration = fds.analyticsapi.engines.Configuration(
+ access_token = 'YOUR_BEARER_TOKEN'
+)
+
+# Enter a context with an instance of the API client
+with fds.analyticsapi.engines.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = unlinked_pa_templates_api.UnlinkedPATemplatesApi(api_client)
+ id = "id_example" # str | Unique identifier for an unlinked PA template
+ unlinked_pa_template_update_parameters_root = UnlinkedPATemplateUpdateParametersRoot(
+ data=UnlinkedPATemplateUpdateParameters(
+ description="description_example",
+ accounts=[
+ PAIdentifier(
+ id="id_example",
+ holdingsmode="holdingsmode_example",
+ ),
+ ],
+ benchmarks=[
+ PAIdentifier(
+ id="id_example",
+ holdingsmode="holdingsmode_example",
+ ),
+ ],
+ columns=[
+ PACalculationColumn(
+ id="id_example",
+ statistics=[
+ "statistics_example",
+ ],
+ ),
+ ],
+ dates=PADateParameters(
+ startdate="startdate_example",
+ enddate="enddate_example",
+ frequency="frequency_example",
+ ),
+ groups=[
+ PACalculationGroup(
+ id="id_example",
+ ),
+ ],
+ currencyisocode="currencyisocode_example",
+ componentdetail="componentdetail_example",
+ content=TemplateContentTypes(
+ mandatory=[
+ "mandatory_example",
+ ],
+ optional=[
+ "optional_example",
+ ],
+ locked=[
+ "locked_example",
+ ],
+ ),
+ ),
+ meta=None,
+ ) # UnlinkedPATemplateUpdateParametersRoot | Request Parameters
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Update unlinked PA template
+ api_response = api_instance.update_unlinked_pa_templates(id, unlinked_pa_template_update_parameters_root)
+ pprint(api_response)
+ except fds.analyticsapi.engines.ApiException as e:
+ print("Exception when calling UnlinkedPATemplatesApi->update_unlinked_pa_templates: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| Unique identifier for an unlinked PA template |
+ **unlinked_pa_template_update_parameters_root** | [**UnlinkedPATemplateUpdateParametersRoot**](UnlinkedPATemplateUpdateParametersRoot.md)| Request Parameters |
+
+### Return type
+
+ - A tuple with response data, HTTP status code and response headers.
+ - **Response datatype**: [**UnlinkedPATemplateSummaryRoot**](UnlinkedPATemplateSummaryRoot.md)
+
+### Authorization
+
+[Basic](../README.md#Basic), [Bearer](../README.md#Bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Expected response, updated the unlinked PA template. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**400** | Invalid data provided. Please check the request parameters before attempting again. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**404** | Template not found. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**401** | Missing or invalid authentication. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**403** | User is forbidden with current credentials | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**406** | Unsupported Accept header. Header needs to be set to application/json. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* X-FactSet-Api-RateLimit-Limit - Number of allowed requests for the time window.
* X-FactSet-Api-RateLimit-Remaining - Number of requests left for the time window.
* X-FactSet-Api-RateLimit-Reset - Number of seconds remaining till rate limit resets.
|
+**429** | Rate limit reached. Wait till the time specified in Retry-After header value to make further requests. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
* Retry-After - Time to wait in seconds before making a new request as the rate limit has reached.
|
+**500** | Server error. Log the X-DataDirect-Request-Key header to assist in troubleshooting. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+**503** | Request timed out. Retry the request in sometime. | * X-DataDirect-Request-Key - FactSet's request key header.
* X-FactSet-Api-Request-Key - Key to uniquely identify an Analytics API request. Only available after successful authentication.
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/auto-generated-sdk/docs/VaultComponent.md b/auto-generated-sdk/docs/VaultComponent.md
index 0521ca4d..9fc7f9a3 100644
--- a/auto-generated-sdk/docs/VaultComponent.md
+++ b/auto-generated-sdk/docs/VaultComponent.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**snapshot** | **bool** | Snapshot | [optional]
**name** | **str** | Component name. | [optional]
**category** | **str** | Component category. | [optional]
+**type** | **str** | Component type. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/VaultComponentRoot.md b/auto-generated-sdk/docs/VaultComponentRoot.md
index b122f317..f83a04a5 100644
--- a/auto-generated-sdk/docs/VaultComponentRoot.md
+++ b/auto-generated-sdk/docs/VaultComponentRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**VaultComponent**](VaultComponent.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/VaultConfigurationRoot.md b/auto-generated-sdk/docs/VaultConfigurationRoot.md
index 75a48d94..eb20eda4 100644
--- a/auto-generated-sdk/docs/VaultConfigurationRoot.md
+++ b/auto-generated-sdk/docs/VaultConfigurationRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**VaultConfiguration**](VaultConfiguration.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/docs/VaultConfigurationSummaryRoot.md b/auto-generated-sdk/docs/VaultConfigurationSummaryRoot.md
index e4649dd0..d447ad2e 100644
--- a/auto-generated-sdk/docs/VaultConfigurationSummaryRoot.md
+++ b/auto-generated-sdk/docs/VaultConfigurationSummaryRoot.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | [**{str: (VaultConfigurationSummary,)}**](VaultConfigurationSummary.md) | |
-**meta** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**meta** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/__init__.py b/auto-generated-sdk/fds/analyticsapi/engines/__init__.py
index 3f72bece..c6074d00 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/__init__.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/__init__.py
@@ -11,7 +11,7 @@
"""
-__version__ = "5.1.0"
+__version__ = "5.2.0"
# import ApiClient
from fds.analyticsapi.engines.api_client import ApiClient
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/api/accounts_api.py b/auto-generated-sdk/fds/analyticsapi/engines/api/accounts_api.py
index 3f85d70f..71b9a7d5 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/api/accounts_api.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/api/accounts_api.py
@@ -24,6 +24,7 @@
)
from fds.analyticsapi.engines.model.account_directories_root import AccountDirectoriesRoot
from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from fds.analyticsapi.engines.model.spar_accounts_root import SPARAccountsRoot
class AccountsApi(object):
@@ -157,3 +158,123 @@ def __get_accounts(
api_client=api_client,
callable=__get_accounts
)
+
+ def __get_spar_returns_type(
+ self,
+ account_path,
+ **kwargs
+ ):
+ """Get SPAR account returns type details # noqa: E501
+
+ This endpoint returns the returns type of account associated with SPAR # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.get_spar_returns_type(account_path, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ account_path (str): URL encoded account path
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ SPARAccountsRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['account_path'] = \
+ account_path
+ return self.call_with_http_info(**kwargs)
+
+ self.get_spar_returns_type = _Endpoint(
+ settings={
+ 'response_type': dict({ 200:(SPARAccountsRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/spar/v3/accounts/{accountPath}/returns-type',
+ 'operation_id': 'get_spar_returns_type',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'account_path',
+ ],
+ 'required': [
+ 'account_path',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'account_path':
+ (str,),
+ },
+ 'attribute_map': {
+ 'account_path': 'accountPath',
+ },
+ 'location_map': {
+ 'account_path': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client,
+ callable=__get_spar_returns_type
+ )
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/api/components_api.py b/auto-generated-sdk/fds/analyticsapi/engines/api/components_api.py
index 41feb4a8..b67e9ab6 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/api/components_api.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/api/components_api.py
@@ -162,22 +162,21 @@ def __get_pa_component_by_id(
def __get_pa_components(
self,
- document,
**kwargs
):
"""Get PA components # noqa: E501
- This endpoint returns the list of PA components in a given PA document. # noqa: E501
+ This endpoint returns 1.List of PA components in a given PA document if document name is provided. 2.List of components in given directory if directory is provided. # noqa: E501
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please pass async_req=True
- >>> thread = api.get_pa_components(document, async_req=True)
+ >>> thread = api.get_pa_components(async_req=True)
>>> result = thread.get()
- Args:
- document (str): Document Name
Keyword Args:
+ document (str): Document Name. [optional]
+ directory (str): Directory to get the components. [optional]
_return_http_data_only (bool): response data without head status
code and headers. Default is False.
_preload_content (bool): if False, the urllib3.HTTPResponse object
@@ -222,8 +221,6 @@ def __get_pa_components(
'_check_return_type', True
)
kwargs['_host_index'] = kwargs.get('_host_index')
- kwargs['document'] = \
- document
return self.call_with_http_info(**kwargs)
self.get_pa_components = _Endpoint(
@@ -241,10 +238,9 @@ def __get_pa_components(
params_map={
'all': [
'document',
+ 'directory',
],
- 'required': [
- 'document',
- ],
+ 'required': [],
'nullable': [
],
'enum': [
@@ -260,12 +256,16 @@ def __get_pa_components(
'openapi_types': {
'document':
(str,),
+ 'directory':
+ (str,),
},
'attribute_map': {
'document': 'document',
+ 'directory': 'directory',
},
'location_map': {
'document': 'query',
+ 'directory': 'query',
},
'collection_format_map': {
}
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/api/fiab_calculations_api.py b/auto-generated-sdk/fds/analyticsapi/engines/api/fiab_calculations_api.py
index add0ce38..b2b42523 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/api/fiab_calculations_api.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/api/fiab_calculations_api.py
@@ -22,7 +22,6 @@
none_type,
validate_and_convert_types
)
-from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
from fds.analyticsapi.engines.model.fiab_calculation_parameters import FIABCalculationParameters
from fds.analyticsapi.engines.model.fiab_calculation_status import FIABCalculationStatus
from fds.analyticsapi.engines.model.fiab_calculation_status_summary import FIABCalculationStatusSummary
@@ -372,11 +371,7 @@ def __run_calculation(
}
},
headers_map={
- 'accept': [
- 'text/plain',
- 'application/json',
- 'text/json'
- ],
+ 'accept': [],
'content_type': [
'application/json'
]
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/api/linked_pa_templates_api.py b/auto-generated-sdk/fds/analyticsapi/engines/api/linked_pa_templates_api.py
new file mode 100644
index 00000000..ef6b0a20
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/api/linked_pa_templates_api.py
@@ -0,0 +1,662 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.api_client import ApiClient, Endpoint as _Endpoint
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ check_allowed_values,
+ check_validations,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_and_convert_types
+)
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from fds.analyticsapi.engines.model.linked_pa_template_parameters_root import LinkedPATemplateParametersRoot
+from fds.analyticsapi.engines.model.linked_pa_template_root import LinkedPATemplateRoot
+from fds.analyticsapi.engines.model.linked_pa_template_summary_root import LinkedPATemplateSummaryRoot
+from fds.analyticsapi.engines.model.linked_pa_template_update_parameters_root import LinkedPATemplateUpdateParametersRoot
+
+
+class LinkedPATemplatesApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+
+ def __create_linked_pa_templates(
+ self,
+ linked_pa_template_parameters_root,
+ **kwargs
+ ):
+ """Create a linked PA template # noqa: E501
+
+ This endpoint creates a template from an **existing portfolio analysis tile**, allowing the user to replicate and fetch reports settings. Remarks: * Mandatory, optional and locked fields can be \"accounts\", \"benchmarks\", \"groups\", \"columns\", \"dates\", \"currencyisocode\" and \"componentdetail\". * Mandatory and locked strings are mutually exclusive. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_linked_pa_templates(linked_pa_template_parameters_root, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ linked_pa_template_parameters_root (LinkedPATemplateParametersRoot): Request Parameters
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ LinkedPATemplateSummaryRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['linked_pa_template_parameters_root'] = \
+ linked_pa_template_parameters_root
+ return self.call_with_http_info(**kwargs)
+
+ self.create_linked_pa_templates = _Endpoint(
+ settings={
+ 'response_type': dict({ 201:(LinkedPATemplateSummaryRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/linked-templates',
+ 'operation_id': 'create_linked_pa_templates',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'linked_pa_template_parameters_root',
+ ],
+ 'required': [
+ 'linked_pa_template_parameters_root',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'linked_pa_template_parameters_root':
+ (LinkedPATemplateParametersRoot,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'linked_pa_template_parameters_root': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client,
+ callable=__create_linked_pa_templates
+ )
+
+ def __delete_linked_pa_templates(
+ self,
+ id,
+ **kwargs
+ ):
+ """Delete a linked PA template. # noqa: E501
+
+ This endpoint deletes an existing linked PA template. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_linked_pa_templates(id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str): Unique identifier for a linked PA template
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['id'] = \
+ id
+ return self.call_with_http_info(**kwargs)
+
+ self.delete_linked_pa_templates = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/linked-templates/{id}',
+ 'operation_id': 'delete_linked_pa_templates',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ },
+ 'location_map': {
+ 'id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'text/plain',
+ 'application/json',
+ 'text/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client,
+ callable=__delete_linked_pa_templates
+ )
+
+ def __get_linked_pa_templates(
+ self,
+ **kwargs
+ ):
+ """Get linked PA templates # noqa: E501
+
+ This endpoint returns the list of linked PA templates in given path. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.get_linked_pa_templates(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ directory (str): Get linked PA templates in path.. [optional]
+ document_directory (str): Get linked PA templates for documents in document path. [optional]
+ document_name (str): Get linked PA templates for documents by document name. [optional]
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ LinkedPATemplateSummaryRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ return self.call_with_http_info(**kwargs)
+
+ self.get_linked_pa_templates = _Endpoint(
+ settings={
+ 'response_type': dict({ 200:(LinkedPATemplateSummaryRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/linked-templates',
+ 'operation_id': 'get_linked_pa_templates',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'directory',
+ 'document_directory',
+ 'document_name',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'directory':
+ (str,),
+ 'document_directory':
+ (str,),
+ 'document_name':
+ (str,),
+ },
+ 'attribute_map': {
+ 'directory': 'directory',
+ 'document_directory': 'documentDirectory',
+ 'document_name': 'documentName',
+ },
+ 'location_map': {
+ 'directory': 'query',
+ 'document_directory': 'query',
+ 'document_name': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client,
+ callable=__get_linked_pa_templates
+ )
+
+ def __get_linked_pa_templates_by_id(
+ self,
+ id,
+ **kwargs
+ ):
+ """Get linked PA template by id # noqa: E501
+
+ This endpoint fetches the linked PA template settings. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.get_linked_pa_templates_by_id(id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str): Unique identifier for a linked PA template
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ LinkedPATemplateRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['id'] = \
+ id
+ return self.call_with_http_info(**kwargs)
+
+ self.get_linked_pa_templates_by_id = _Endpoint(
+ settings={
+ 'response_type': dict({ 200:(LinkedPATemplateRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/linked-templates/{id}',
+ 'operation_id': 'get_linked_pa_templates_by_id',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ },
+ 'location_map': {
+ 'id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client,
+ callable=__get_linked_pa_templates_by_id
+ )
+
+ def __update_linked_pa_templates(
+ self,
+ id,
+ linked_pa_template_update_parameters_root,
+ **kwargs
+ ):
+ """Update a linked PA template # noqa: E501
+
+ This endpoint allows the user to change the request body and description from an existing template. Remarks: * Mandatory, optional and locked fields can be \"accounts\", \"benchmarks\", \"groups\", \"columns\", \"dates\", \"currencyisocode\" and \"componentdetail\". * Mandatory and locked strings are mutually exclusive. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_linked_pa_templates(id, linked_pa_template_update_parameters_root, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str): Unique identifier for a linked PA template
+ linked_pa_template_update_parameters_root (LinkedPATemplateUpdateParametersRoot): Request Parameters
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ LinkedPATemplateSummaryRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['id'] = \
+ id
+ kwargs['linked_pa_template_update_parameters_root'] = \
+ linked_pa_template_update_parameters_root
+ return self.call_with_http_info(**kwargs)
+
+ self.update_linked_pa_templates = _Endpoint(
+ settings={
+ 'response_type': dict({ 200:(LinkedPATemplateSummaryRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/linked-templates/{id}',
+ 'operation_id': 'update_linked_pa_templates',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'linked_pa_template_update_parameters_root',
+ ],
+ 'required': [
+ 'id',
+ 'linked_pa_template_update_parameters_root',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'linked_pa_template_update_parameters_root':
+ (LinkedPATemplateUpdateParametersRoot,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'linked_pa_template_update_parameters_root': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client,
+ callable=__update_linked_pa_templates
+ )
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/api/templated_pa_components_api.py b/auto-generated-sdk/fds/analyticsapi/engines/api/templated_pa_components_api.py
new file mode 100644
index 00000000..9f0b3245
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/api/templated_pa_components_api.py
@@ -0,0 +1,417 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.api_client import ApiClient, Endpoint as _Endpoint
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ check_allowed_values,
+ check_validations,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_and_convert_types
+)
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from fds.analyticsapi.engines.model.templated_pa_component_parameters_root import TemplatedPAComponentParametersRoot
+from fds.analyticsapi.engines.model.templated_pa_component_summary_root import TemplatedPAComponentSummaryRoot
+from fds.analyticsapi.engines.model.templated_pa_component_update_parameters_root import TemplatedPAComponentUpdateParametersRoot
+
+
+class TemplatedPAComponentsApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+
+ def __create_templated_pa_components(
+ self,
+ templated_pa_component_parameters_root,
+ **kwargs
+ ):
+ """Create templated PA component # noqa: E501
+
+ This endpoint creates new component based off of linked PA template or unlinked PA template. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_templated_pa_components(templated_pa_component_parameters_root, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ templated_pa_component_parameters_root (TemplatedPAComponentParametersRoot): Request Parameters
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ TemplatedPAComponentSummaryRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['templated_pa_component_parameters_root'] = \
+ templated_pa_component_parameters_root
+ return self.call_with_http_info(**kwargs)
+
+ self.create_templated_pa_components = _Endpoint(
+ settings={
+ 'response_type': dict({ 201:(TemplatedPAComponentSummaryRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/templated-components',
+ 'operation_id': 'create_templated_pa_components',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'templated_pa_component_parameters_root',
+ ],
+ 'required': [
+ 'templated_pa_component_parameters_root',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'templated_pa_component_parameters_root':
+ (TemplatedPAComponentParametersRoot,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'templated_pa_component_parameters_root': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'text/plain',
+ 'application/json',
+ 'text/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client,
+ callable=__create_templated_pa_components
+ )
+
+ def __delete_templated_pa_components(
+ self,
+ id,
+ **kwargs
+ ):
+ """Delete templated PA component # noqa: E501
+
+ This endpoint deletes an existing templated PA component # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_templated_pa_components(id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str): Unique identifier for a templated PA component
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['id'] = \
+ id
+ return self.call_with_http_info(**kwargs)
+
+ self.delete_templated_pa_components = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/templated-components/{id}',
+ 'operation_id': 'delete_templated_pa_components',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ },
+ 'location_map': {
+ 'id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'text/plain',
+ 'application/json',
+ 'text/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client,
+ callable=__delete_templated_pa_components
+ )
+
+ def __update_templated_pa_components(
+ self,
+ id,
+ templated_pa_component_update_parameters_root,
+ **kwargs
+ ):
+ """Update templated PA component # noqa: E501
+
+ This endpoint allows the user to change the request body from an existing templated PA component. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_templated_pa_components(id, templated_pa_component_update_parameters_root, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str): Unique identifier for a templated PA component
+ templated_pa_component_update_parameters_root (TemplatedPAComponentUpdateParametersRoot): Request Parameters
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ TemplatedPAComponentSummaryRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['id'] = \
+ id
+ kwargs['templated_pa_component_update_parameters_root'] = \
+ templated_pa_component_update_parameters_root
+ return self.call_with_http_info(**kwargs)
+
+ self.update_templated_pa_components = _Endpoint(
+ settings={
+ 'response_type': dict({ 200:(TemplatedPAComponentSummaryRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/templated-components/{id}',
+ 'operation_id': 'update_templated_pa_components',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'templated_pa_component_update_parameters_root',
+ ],
+ 'required': [
+ 'id',
+ 'templated_pa_component_update_parameters_root',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'templated_pa_component_update_parameters_root':
+ (TemplatedPAComponentUpdateParametersRoot,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'templated_pa_component_update_parameters_root': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client,
+ callable=__update_templated_pa_components
+ )
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/api/unlinked_pa_templates_api.py b/auto-generated-sdk/fds/analyticsapi/engines/api/unlinked_pa_templates_api.py
new file mode 100644
index 00000000..15fd24cd
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/api/unlinked_pa_templates_api.py
@@ -0,0 +1,884 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.api_client import ApiClient, Endpoint as _Endpoint
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ check_allowed_values,
+ check_validations,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_and_convert_types
+)
+from fds.analyticsapi.engines.model.client_error_response import ClientErrorResponse
+from fds.analyticsapi.engines.model.unlinked_pa_template_category_and_type_details_root import UnlinkedPATemplateCategoryAndTypeDetailsRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_category_and_type_root import UnlinkedPATemplateCategoryAndTypeRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_parameters_root import UnlinkedPATemplateParametersRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_root import UnlinkedPATemplateRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_summary_root import UnlinkedPATemplateSummaryRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_update_parameters_root import UnlinkedPATemplateUpdateParametersRoot
+
+
+class UnlinkedPATemplatesApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+
+ def __create_unlinked_pa_templates(
+ self,
+ unlinked_pa_template_parameters_root,
+ **kwargs
+ ):
+ """Create unlinked PA template # noqa: E501
+
+ This endpoint creates a template which is not linked to any specific PA3 tile. Remarks: * Mandatory, optional and locked fields can be \"accounts\", \"benchmarks\", \"groups\", \"columns\", \"dates\", \"currencyisocode\" and \"componentdetail\". * Mandatory and locked strings are mutually exclusive. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_unlinked_pa_templates(unlinked_pa_template_parameters_root, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ unlinked_pa_template_parameters_root (UnlinkedPATemplateParametersRoot): Request Parameters
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ UnlinkedPATemplateSummaryRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['unlinked_pa_template_parameters_root'] = \
+ unlinked_pa_template_parameters_root
+ return self.call_with_http_info(**kwargs)
+
+ self.create_unlinked_pa_templates = _Endpoint(
+ settings={
+ 'response_type': dict({ 201:(UnlinkedPATemplateSummaryRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/unlinked-templates',
+ 'operation_id': 'create_unlinked_pa_templates',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'unlinked_pa_template_parameters_root',
+ ],
+ 'required': [
+ 'unlinked_pa_template_parameters_root',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'unlinked_pa_template_parameters_root':
+ (UnlinkedPATemplateParametersRoot,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'unlinked_pa_template_parameters_root': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client,
+ callable=__create_unlinked_pa_templates
+ )
+
+ def __delete_unlinked_pa_templates(
+ self,
+ id,
+ **kwargs
+ ):
+ """Delete unlinked PA template # noqa: E501
+
+ This endpoint deletes an existing unliked PA template. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_unlinked_pa_templates(id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str): Unique identifier for an unlinked PA template
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['id'] = \
+ id
+ return self.call_with_http_info(**kwargs)
+
+ self.delete_unlinked_pa_templates = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/unlinked-templates/{id}',
+ 'operation_id': 'delete_unlinked_pa_templates',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ },
+ 'location_map': {
+ 'id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client,
+ callable=__delete_unlinked_pa_templates
+ )
+
+ def __get_default_unlinked_pa_template_types(
+ self,
+ **kwargs
+ ):
+ """Get default unlinked PA template types. # noqa: E501
+
+ This endpoint fetches default unlinked PA template types. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.get_default_unlinked_pa_template_types(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ UnlinkedPATemplateCategoryAndTypeRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ return self.call_with_http_info(**kwargs)
+
+ self.get_default_unlinked_pa_template_types = _Endpoint(
+ settings={
+ 'response_type': dict({ 200:(UnlinkedPATemplateCategoryAndTypeRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/unlinked-templates/template-types',
+ 'operation_id': 'get_default_unlinked_pa_template_types',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client,
+ callable=__get_default_unlinked_pa_template_types
+ )
+
+ def __get_details_type(
+ self,
+ id,
+ **kwargs
+ ):
+ """Get unlinked PA template type details by id. # noqa: E501
+
+ This endpoint fetches the unlinked PA template type details. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.get_details_type(id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str): Unique identifier for an unlinked PA template type
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ UnlinkedPATemplateCategoryAndTypeDetailsRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['id'] = \
+ id
+ return self.call_with_http_info(**kwargs)
+
+ self.get_details_type = _Endpoint(
+ settings={
+ 'response_type': dict({ 200:(UnlinkedPATemplateCategoryAndTypeDetailsRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/unlinked-templates/template-types/{id}',
+ 'operation_id': 'get_details_type',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ },
+ 'location_map': {
+ 'id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client,
+ callable=__get_details_type
+ )
+
+ def __get_unlinked_pa_templates(
+ self,
+ **kwargs
+ ):
+ """Get unlinked PA templates # noqa: E501
+
+ This endpoint returns the list of unlinked PA templates. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.get_unlinked_pa_templates(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ directory (str): Get unlinked PA templates in path.. [optional]
+ category (str): Get unlinked PA templates by category.. [optional]
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ UnlinkedPATemplateSummaryRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ return self.call_with_http_info(**kwargs)
+
+ self.get_unlinked_pa_templates = _Endpoint(
+ settings={
+ 'response_type': dict({ 200:(UnlinkedPATemplateSummaryRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/unlinked-templates',
+ 'operation_id': 'get_unlinked_pa_templates',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'directory',
+ 'category',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'directory':
+ (str,),
+ 'category':
+ (str,),
+ },
+ 'attribute_map': {
+ 'directory': 'directory',
+ 'category': 'category',
+ },
+ 'location_map': {
+ 'directory': 'query',
+ 'category': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client,
+ callable=__get_unlinked_pa_templates
+ )
+
+ def __get_unlinked_pa_templates_by_id(
+ self,
+ id,
+ **kwargs
+ ):
+ """Get unlinked PA template details by id # noqa: E501
+
+ This endpoint fetches the template settings. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.get_unlinked_pa_templates_by_id(id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str): Unique identifier for an unlinked PA template
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ UnlinkedPATemplateRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['id'] = \
+ id
+ return self.call_with_http_info(**kwargs)
+
+ self.get_unlinked_pa_templates_by_id = _Endpoint(
+ settings={
+ 'response_type': dict({ 200:(UnlinkedPATemplateRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/unlinked-templates/{id}',
+ 'operation_id': 'get_unlinked_pa_templates_by_id',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ },
+ 'location_map': {
+ 'id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client,
+ callable=__get_unlinked_pa_templates_by_id
+ )
+
+ def __update_unlinked_pa_templates(
+ self,
+ id,
+ unlinked_pa_template_update_parameters_root,
+ **kwargs
+ ):
+ """Update unlinked PA template # noqa: E501
+
+ This endpoint updates an existing unlinked PA template. Remarks: * Mandatory, optional and locked fields can be \"accounts\", \"benchmarks\", \"groups\", \"columns\", \"dates\", \"currencyisocode\" and \"componentdetail\". * Mandatory and locked strings are mutually exclusive. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_unlinked_pa_templates(id, unlinked_pa_template_update_parameters_root, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str): Unique identifier for an unlinked PA template
+ unlinked_pa_template_update_parameters_root (UnlinkedPATemplateUpdateParametersRoot): Request Parameters
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is False.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (float/tuple): timeout setting for this request. If one
+ number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ UnlinkedPATemplateSummaryRoot
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', False
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['id'] = \
+ id
+ kwargs['unlinked_pa_template_update_parameters_root'] = \
+ unlinked_pa_template_update_parameters_root
+ return self.call_with_http_info(**kwargs)
+
+ self.update_unlinked_pa_templates = _Endpoint(
+ settings={
+ 'response_type': dict({ 200:(UnlinkedPATemplateSummaryRoot,), }),
+ 'auth': [
+ 'Basic',
+ 'Bearer'
+ ],
+ 'endpoint_path': '/analytics/engines/pa/v3/unlinked-templates/{id}',
+ 'operation_id': 'update_unlinked_pa_templates',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'unlinked_pa_template_update_parameters_root',
+ ],
+ 'required': [
+ 'id',
+ 'unlinked_pa_template_update_parameters_root',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'unlinked_pa_template_update_parameters_root':
+ (UnlinkedPATemplateUpdateParametersRoot,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'unlinked_pa_template_update_parameters_root': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client,
+ callable=__update_unlinked_pa_templates
+ )
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/api_client.py b/auto-generated-sdk/fds/analyticsapi/engines/api_client.py
index 898e9846..a69b05ab 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/api_client.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/api_client.py
@@ -77,7 +77,7 @@ def __init__(self, configuration=None, header_name=None, header_value=None,
self.default_headers[header_name] = header_value
self.cookie = cookie
# Set default User-Agent.
- self.user_agent = 'engines-api/5.0.1/python'
+ self.user_agent = 'engines-api/5.2.0/python'
def __enter__(self):
return self
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/apis/__init__.py b/auto-generated-sdk/fds/analyticsapi/engines/apis/__init__.py
index f2009889..edddcc27 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/apis/__init__.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/apis/__init__.py
@@ -31,10 +31,13 @@
from fds.analyticsapi.engines.api.fpo_optimizer_api import FPOOptimizerApi
from fds.analyticsapi.engines.api.frequencies_api import FrequenciesApi
from fds.analyticsapi.engines.api.groups_api import GroupsApi
+from fds.analyticsapi.engines.api.linked_pa_templates_api import LinkedPATemplatesApi
from fds.analyticsapi.engines.api.npo_optimizer_api import NPOOptimizerApi
from fds.analyticsapi.engines.api.pa_calculations_api import PACalculationsApi
from fds.analyticsapi.engines.api.pub_calculations_api import PubCalculationsApi
from fds.analyticsapi.engines.api.quant_calculations_api import QuantCalculationsApi
from fds.analyticsapi.engines.api.spar_calculations_api import SPARCalculationsApi
from fds.analyticsapi.engines.api.strategy_documents_api import StrategyDocumentsApi
+from fds.analyticsapi.engines.api.templated_pa_components_api import TemplatedPAComponentsApi
+from fds.analyticsapi.engines.api.unlinked_pa_templates_api import UnlinkedPATemplatesApi
from fds.analyticsapi.engines.api.vault_calculations_api import VaultCalculationsApi
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/configuration.py b/auto-generated-sdk/fds/analyticsapi/engines/configuration.py
index d985672c..b246f783 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/configuration.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/configuration.py
@@ -102,7 +102,7 @@ def __init__(self, host=None,
api_key=None, api_key_prefix=None,
access_token=None,
username=None, password=None,
- discard_unknown_keys=False,
+ discard_unknown_keys=True,
disabled_client_side_validations="",
server_index=None, server_variables=None,
server_operation_index=None, server_operation_variables=None,
@@ -409,7 +409,7 @@ def to_debug_report(self):
"OS: {env}\n"\
"Python Version: {pyversion}\n"\
"Version of the API: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]\n"\
- "SDK Package Version: 5.1.0".\
+ "SDK Package Version: 5.2.0".\
format(env=sys.platform, pyversion=sys.version)
def get_host_settings(self):
@@ -472,4 +472,4 @@ def host(self):
def host(self, value):
"""Fix base path."""
self._base_path = value
- self.server_index = None
+ self.server_index = None
\ No newline at end of file
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/account_directories_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/account_directories_root.py
index 375612e6..8bf53986 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/account_directories_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/account_directories_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (AccountDirectories,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/afi_optimization_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/afi_optimization_parameters_root.py
index 5017fc98..71d0c95c 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/afi_optimization_parameters_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/afi_optimization_parameters_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (AFIOptimizationParameters,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str,), # noqa: E501
}
@cached_property
@@ -139,7 +139,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
data (AFIOptimizationParameters): [optional] # noqa: E501
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/axioma_equity_optimization_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/axioma_equity_optimization_parameters_root.py
index 883270ed..07fbbd63 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/axioma_equity_optimization_parameters_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/axioma_equity_optimization_parameters_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (AxiomaEquityOptimizationParameters,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str,), # noqa: E501
}
@cached_property
@@ -139,7 +139,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
data (AxiomaEquityOptimizationParameters): [optional] # noqa: E501
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/bpm_optimization_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/bpm_optimization_parameters_root.py
index 3fb0e6a4..7d0d6e10 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/bpm_optimization_parameters_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/bpm_optimization_parameters_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (BPMOptimizationParameters,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str,), # noqa: E501
}
@cached_property
@@ -139,7 +139,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
data (BPMOptimizationParameters): [optional] # noqa: E501
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/calculation_info_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/calculation_info_root.py
index ad61c5a4..84f70040 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/calculation_info_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/calculation_info_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (CalculationInfo,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/column_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/column_root.py
index 1e90668e..0395cee7 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/column_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/column_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (Column,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/column_statistic_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/column_statistic_root.py
index 481b56a2..b3f3e259 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/column_statistic_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/column_statistic_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': ({str: (ColumnStatistic,)},), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/column_summary_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/column_summary_root.py
index 8ef7647a..066d8c8f 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/column_summary_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/column_summary_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': ({str: (ColumnSummary,)},), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/component_summary.py b/auto-generated-sdk/fds/analyticsapi/engines/model/component_summary.py
index e88e94d7..34f26bef 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/component_summary.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/component_summary.py
@@ -75,6 +75,7 @@ def openapi_types():
return {
'name': (str,), # noqa: E501
'category': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
}
@cached_property
@@ -85,6 +86,7 @@ def discriminator():
attribute_map = {
'name': 'name', # noqa: E501
'category': 'category', # noqa: E501
+ 'type': 'type', # noqa: E501
}
_composed_schemas = {}
@@ -135,6 +137,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
_visited_composed_classes = (Animal,)
name (str): Component name.. [optional] # noqa: E501
category (str): Component category.. [optional] # noqa: E501
+ type (str): Component type.. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/component_summary_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/component_summary_root.py
index b5f75aef..23c12068 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/component_summary_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/component_summary_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': ({str: (ComponentSummary,)},), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/currency_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/currency_root.py
index e8fe2451..99697a65 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/currency_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/currency_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': ({str: (Currency,)},), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/date_parameters_summary_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/date_parameters_summary_root.py
index c2cc8832..186da775 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/date_parameters_summary_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/date_parameters_summary_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (DateParametersSummary,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/document_directories_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/document_directories_root.py
index a3c39360..a76fec5d 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/document_directories_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/document_directories_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (DocumentDirectories,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/fi_job_settings.py b/auto-generated-sdk/fds/analyticsapi/engines/model/fi_job_settings.py
index dd123f59..e8a4d613 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/fi_job_settings.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/fi_job_settings.py
@@ -53,6 +53,12 @@ class FIJobSettings(ModelNormal):
"""
allowed_values = {
+ ('call_method',): {
+ 'NO_CALL': "No Call",
+ 'INTRINSIC_VALUE': "Intrinsic Value",
+ 'FIRST_CALL': "First Call",
+ 'FIRST_PAR': "First Par",
+ },
}
validations = {
@@ -75,6 +81,9 @@ def openapi_types():
return {
'as_of_date': (str,), # noqa: E501
'partial_duration_months': ([int],), # noqa: E501
+ 'call_method': (str,), # noqa: E501
+ 'settlement': (str,), # noqa: E501
+ 'calc_from_method': (str,), # noqa: E501
}
@cached_property
@@ -85,6 +94,9 @@ def discriminator():
attribute_map = {
'as_of_date': 'asOfDate', # noqa: E501
'partial_duration_months': 'partialDurationMonths', # noqa: E501
+ 'call_method': 'callMethod', # noqa: E501
+ 'settlement': 'settlement', # noqa: E501
+ 'calc_from_method': 'calcFromMethod', # noqa: E501
}
_composed_schemas = {}
@@ -137,6 +149,9 @@ def __init__(self, as_of_date, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
partial_duration_months ([int]): Partial duration months. [optional] # noqa: E501
+ call_method (str): Call Method. [optional] # noqa: E501
+ settlement (str): Settlement Date. [optional] # noqa: E501
+ calc_from_method (str): Calculation from method. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/fi_security.py b/auto-generated-sdk/fds/analyticsapi/engines/model/fi_security.py
index d3921d02..792038d1 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/fi_security.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/fi_security.py
@@ -53,6 +53,12 @@ class FISecurity(ModelNormal):
"""
allowed_values = {
+ ('call_method',): {
+ 'NO_CALL': "No Call",
+ 'INTRINSIC_VALUE': "Intrinsic Value",
+ 'FIRST_CALL': "First Call",
+ 'FIRST_PAR': "First Par",
+ },
('face_type',): {
'CURRENT': "Current",
'ORIGINAL': "Original",
@@ -77,10 +83,11 @@ def openapi_types():
and the value is attribute type.
"""
return {
- 'calc_from_method': (str,), # noqa: E501
'calc_from_value': (float,), # noqa: E501
'symbol': (str,), # noqa: E501
'settlement': (str,), # noqa: E501
+ 'call_method': (str,), # noqa: E501
+ 'calc_from_method': (str,), # noqa: E501
'face': (float,), # noqa: E501
'face_type': (str,), # noqa: E501
'discount_curve': (str,), # noqa: E501
@@ -92,10 +99,11 @@ def discriminator():
attribute_map = {
- 'calc_from_method': 'calcFromMethod', # noqa: E501
'calc_from_value': 'calcFromValue', # noqa: E501
'symbol': 'symbol', # noqa: E501
'settlement': 'settlement', # noqa: E501
+ 'call_method': 'callMethod', # noqa: E501
+ 'calc_from_method': 'calcFromMethod', # noqa: E501
'face': 'face', # noqa: E501
'face_type': 'faceType', # noqa: E501
'discount_curve': 'discountCurve', # noqa: E501
@@ -113,11 +121,10 @@ def discriminator():
])
@convert_js_args_to_python_args
- def __init__(self, calc_from_method, calc_from_value, symbol, *args, **kwargs): # noqa: E501
+ def __init__(self, calc_from_value, symbol, *args, **kwargs): # noqa: E501
"""FISecurity - a model defined in OpenAPI
Args:
- calc_from_method (str): Calculation from method
calc_from_value (float): Calculation from value
symbol (str): Symbol
@@ -153,6 +160,8 @@ def __init__(self, calc_from_method, calc_from_value, symbol, *args, **kwargs):
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
settlement (str): Settlement date. [optional] # noqa: E501
+ call_method (str): Call Method. [optional] # noqa: E501
+ calc_from_method (str): Calculation from method. [optional] # noqa: E501
face (float): Face. [optional] if omitted the server will use the default value of 1 # noqa: E501
face_type (str): Face type. [optional] if omitted the server will use the default value of "Current" # noqa: E501
discount_curve (str): Discount curve. [optional] # noqa: E501
@@ -181,7 +190,6 @@ def __init__(self, calc_from_method, calc_from_value, symbol, *args, **kwargs):
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
- self.calc_from_method = calc_from_method
self.calc_from_value = calc_from_value
self.symbol = symbol
for var_name, var_value in kwargs.items():
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/fpo_optimization_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/fpo_optimization_parameters_root.py
index dfd13340..f26119d4 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/fpo_optimization_parameters_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/fpo_optimization_parameters_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (FPOOptimizationParameters,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str,), # noqa: E501
}
@cached_property
@@ -139,7 +139,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
data (FPOOptimizationParameters): [optional] # noqa: E501
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/frequency_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/frequency_root.py
index 1f8abe00..bd2c72fd 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/frequency_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/frequency_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': ({str: (Frequency,)},), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/group_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/group_root.py
index b0822162..84415284 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/group_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/group_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': ({str: (Group,)},), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template.py b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template.py
new file mode 100644
index 00000000..eb71faed
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template.py
@@ -0,0 +1,190 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.template_content_types import TemplateContentTypes
+ globals()['TemplateContentTypes'] = TemplateContentTypes
+
+
+class LinkedPATemplate(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'directory': (str,), # noqa: E501
+ 'snapshot': (bool,), # noqa: E501
+ 'content': (TemplateContentTypes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'parent_component_id': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'directory': 'directory', # noqa: E501
+ 'snapshot': 'snapshot', # noqa: E501
+ 'content': 'content', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'parent_component_id': 'parentComponentId', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """LinkedPATemplate - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ directory (str): Template directory.. [optional] # noqa: E501
+ snapshot (bool): snapshot.. [optional] # noqa: E501
+ content (TemplateContentTypes): [optional] # noqa: E501
+ id (str): Template id.. [optional] # noqa: E501
+ description (str): Template description.. [optional] # noqa: E501
+ name (str): Template name.. [optional] # noqa: E501
+ parent_component_id (str): Template parent tile.. [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_parameters.py b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_parameters.py
new file mode 100644
index 00000000..49fa7441
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_parameters.py
@@ -0,0 +1,185 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.template_content_types import TemplateContentTypes
+ globals()['TemplateContentTypes'] = TemplateContentTypes
+
+
+class LinkedPATemplateParameters(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'directory': (str,), # noqa: E501
+ 'parent_component_id': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'content': (TemplateContentTypes,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'directory': 'directory', # noqa: E501
+ 'parent_component_id': 'parentComponentId', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'content': 'content', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, directory, parent_component_id, *args, **kwargs): # noqa: E501
+ """LinkedPATemplateParameters - a model defined in OpenAPI
+
+ Args:
+ directory (str): The directory to create a linked PA template
+ parent_component_id (str): Parent component id
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ description (str): Template description. [optional] # noqa: E501
+ content (TemplateContentTypes): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.directory = directory
+ self.parent_component_id = parent_component_id
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_parameters_root.py
new file mode 100644
index 00000000..2dbec1ec
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_parameters_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.linked_pa_template_parameters import LinkedPATemplateParameters
+ globals()['LinkedPATemplateParameters'] = LinkedPATemplateParameters
+
+
+class LinkedPATemplateParametersRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': (LinkedPATemplateParameters,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """LinkedPATemplateParametersRoot - a model defined in OpenAPI
+
+ Args:
+ data (LinkedPATemplateParameters):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_root.py
new file mode 100644
index 00000000..1115b1a8
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.linked_pa_template import LinkedPATemplate
+ globals()['LinkedPATemplate'] = LinkedPATemplate
+
+
+class LinkedPATemplateRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': (LinkedPATemplate,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """LinkedPATemplateRoot - a model defined in OpenAPI
+
+ Args:
+ data (LinkedPATemplate):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_summary.py b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_summary.py
new file mode 100644
index 00000000..6fe4ec88
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_summary.py
@@ -0,0 +1,173 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class LinkedPATemplateSummary(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'description': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'parent_component_id': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'description': 'description', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'parent_component_id': 'parentComponentId', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """LinkedPATemplateSummary - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ description (str): Template description.. [optional] # noqa: E501
+ name (str): Template name.. [optional] # noqa: E501
+ parent_component_id (str): Template parent tile.. [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_summary_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_summary_root.py
new file mode 100644
index 00000000..e31d1360
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_summary_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.linked_pa_template_summary import LinkedPATemplateSummary
+ globals()['LinkedPATemplateSummary'] = LinkedPATemplateSummary
+
+
+class LinkedPATemplateSummaryRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': ({str: (LinkedPATemplateSummary,)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """LinkedPATemplateSummaryRoot - a model defined in OpenAPI
+
+ Args:
+ data ({str: (LinkedPATemplateSummary,)}):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_update_parameters.py b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_update_parameters.py
new file mode 100644
index 00000000..c1e0d650
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_update_parameters.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.template_content_types import TemplateContentTypes
+ globals()['TemplateContentTypes'] = TemplateContentTypes
+
+
+class LinkedPATemplateUpdateParameters(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'parent_component_id': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'content': (TemplateContentTypes,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'parent_component_id': 'parentComponentId', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'content': 'content', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """LinkedPATemplateUpdateParameters - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ parent_component_id (str): Parent component id. [optional] # noqa: E501
+ description (str): Template description. [optional] # noqa: E501
+ content (TemplateContentTypes): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_update_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_update_parameters_root.py
new file mode 100644
index 00000000..d5b6a8e8
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/linked_pa_template_update_parameters_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.linked_pa_template_update_parameters import LinkedPATemplateUpdateParameters
+ globals()['LinkedPATemplateUpdateParameters'] = LinkedPATemplateUpdateParameters
+
+
+class LinkedPATemplateUpdateParametersRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': (LinkedPATemplateUpdateParameters,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """LinkedPATemplateUpdateParametersRoot - a model defined in OpenAPI
+
+ Args:
+ data (LinkedPATemplateUpdateParameters):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/npo_optimization_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/npo_optimization_parameters_root.py
index 0e7f5629..bea26ed4 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/npo_optimization_parameters_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/npo_optimization_parameters_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (NPOOptimizationParameters,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str,), # noqa: E501
}
@cached_property
@@ -139,7 +139,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
data (NPOOptimizationParameters): [optional] # noqa: E501
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/npo_optimizer_strategy_overrides.py b/auto-generated-sdk/fds/analyticsapi/engines/model/npo_optimizer_strategy_overrides.py
index 6fbf0616..8823ccdb 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/npo_optimizer_strategy_overrides.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/npo_optimizer_strategy_overrides.py
@@ -78,7 +78,7 @@ def openapi_types():
"""
lazy_import()
return {
- 'objective': ({str: ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},)},), # noqa: E501
+ 'objective': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
'constraints': ([ConstraintAction],), # noqa: E501
'tax': (str,), # noqa: E501
'transaction_cost': (str,), # noqa: E501
@@ -144,7 +144,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- objective ({str: ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},)}): Objective parameters. [optional] # noqa: E501
+ objective ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Objective parameters. [optional] # noqa: E501
constraints ([ConstraintAction]): List of constraints. [optional] # noqa: E501
tax (str): Tax Can be set to \"\" for local. [optional] # noqa: E501
transaction_cost (str): Transaction cost Can be set to \"\" for local. [optional] # noqa: E501
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/object_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/object_root.py
index 46d8b8bc..62f157f8 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/object_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/object_root.py
@@ -73,8 +73,8 @@ def openapi_types():
and the value is attribute type.
"""
return {
- 'data': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'data': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -103,7 +103,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
"""ObjectRoot - a model defined in OpenAPI
Args:
- data ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}):
+ data (bool, date, datetime, dict, float, int, list, str, none_type):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -136,7 +136,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/optimizer_output_types.py b/auto-generated-sdk/fds/analyticsapi/engines/model/optimizer_output_types.py
index 96bfb851..1f12bbed 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/optimizer_output_types.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/optimizer_output_types.py
@@ -85,7 +85,7 @@ def openapi_types():
'trades': (OptimizerTradesList,), # noqa: E501
'optimal': (OptimizerOptimalHoldings,), # noqa: E501
'account': (OptimalPortfolio,), # noqa: E501
- 'stats': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'stats': (bool, date, datetime, dict, float, int, list, str,), # noqa: E501
}
@cached_property
@@ -149,7 +149,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
trades (OptimizerTradesList): [optional] # noqa: E501
optimal (OptimizerOptimalHoldings): [optional] # noqa: E501
account (OptimalPortfolio): [optional] # noqa: E501
- stats ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ stats (bool, date, datetime, dict, float, int, list, str): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component.py b/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component.py
index 414a4e83..c4051996 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component.py
@@ -88,6 +88,7 @@ def openapi_types():
'snapshot': (bool,), # noqa: E501
'name': (str,), # noqa: E501
'category': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
}
@cached_property
@@ -104,6 +105,7 @@ def discriminator():
'snapshot': 'snapshot', # noqa: E501
'name': 'name', # noqa: E501
'category': 'category', # noqa: E501
+ 'type': 'type', # noqa: E501
}
_composed_schemas = {}
@@ -160,6 +162,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
snapshot (bool): Is the component type snapshot or subperiod.. [optional] # noqa: E501
name (str): Component name.. [optional] # noqa: E501
category (str): Component category.. [optional] # noqa: E501
+ type (str): Component type.. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component_data.py b/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component_data.py
new file mode 100644
index 00000000..b4441d8d
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component_data.py
@@ -0,0 +1,196 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.pa_calculation_column import PACalculationColumn
+ from fds.analyticsapi.engines.model.pa_calculation_group import PACalculationGroup
+ from fds.analyticsapi.engines.model.pa_date_parameters import PADateParameters
+ from fds.analyticsapi.engines.model.pa_identifier import PAIdentifier
+ globals()['PACalculationColumn'] = PACalculationColumn
+ globals()['PACalculationGroup'] = PACalculationGroup
+ globals()['PADateParameters'] = PADateParameters
+ globals()['PAIdentifier'] = PAIdentifier
+
+
+class PAComponentData(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'accounts': ([PAIdentifier],), # noqa: E501
+ 'benchmarks': ([PAIdentifier],), # noqa: E501
+ 'groups': ([PACalculationGroup],), # noqa: E501
+ 'columns': ([PACalculationColumn],), # noqa: E501
+ 'dates': (PADateParameters,), # noqa: E501
+ 'currencyisocode': (str,), # noqa: E501
+ 'componentdetail': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'accounts': 'accounts', # noqa: E501
+ 'benchmarks': 'benchmarks', # noqa: E501
+ 'groups': 'groups', # noqa: E501
+ 'columns': 'columns', # noqa: E501
+ 'dates': 'dates', # noqa: E501
+ 'currencyisocode': 'currencyisocode', # noqa: E501
+ 'componentdetail': 'componentdetail', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """PAComponentData - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ accounts ([PAIdentifier]): List of accounts.. [optional] # noqa: E501
+ benchmarks ([PAIdentifier]): List of benchmarks.. [optional] # noqa: E501
+ groups ([PACalculationGroup]): List of groupings for the PA calculation. This will take precedence over the groupings saved in the PA document.. [optional] # noqa: E501
+ columns ([PACalculationColumn]): List of columns for the PA calculation. This will take precedence over the columns saved in the PA document.. [optional] # noqa: E501
+ dates (PADateParameters): [optional] # noqa: E501
+ currencyisocode (str): Currency ISO code for calculation.. [optional] # noqa: E501
+ componentdetail (str): PA Storage type. It can be GROUPS or TOTALS or SECURITIES.. [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component_root.py
index 47cc8928..ef660a4a 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/pa_component_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (PAComponent,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/pub_calculation_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/pub_calculation_parameters_root.py
index 64ffad54..fa685d2c 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/pub_calculation_parameters_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/pub_calculation_parameters_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': ({str: (PubCalculationParameters,)},), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str,), # noqa: E501
}
@cached_property
@@ -139,7 +139,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
data ({str: (PubCalculationParameters,)}): List of calculation parameters.. [optional] # noqa: E501
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_all_universal_screen_parameters.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_all_universal_screen_parameters.py
new file mode 100644
index 00000000..db22532b
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_all_universal_screen_parameters.py
@@ -0,0 +1,223 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.quant_formula import QuantFormula
+ globals()['QuantFormula'] = QuantFormula
+
+
+class QuantAllUniversalScreenParameters(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ ('source',): {
+ 'SCREENINGEXPRESSION': "ScreeningExpression",
+ 'FQLEXPRESSION': "FqlExpression",
+ 'UNIVERSALSCREENPARAMETER': "UniversalScreenParameter",
+ 'ALLUNIVERSALSCREENPARAMETERS': "AllUniversalScreenParameters",
+ },
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'source': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'source': 'source', # noqa: E501
+ }
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ '_composed_instances',
+ '_var_name_to_model_instances',
+ '_additional_properties_model_instances',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, source, *args, **kwargs): # noqa: E501
+ """QuantAllUniversalScreenParameters - a model defined in OpenAPI
+
+ Args:
+ source (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ constant_args = {
+ '_check_type': _check_type,
+ '_path_to_item': _path_to_item,
+ '_spec_property_naming': _spec_property_naming,
+ '_configuration': _configuration,
+ '_visited_composed_classes': self._visited_composed_classes,
+ }
+ required_args = {
+ 'source': source,
+ }
+ model_args = {}
+ model_args.update(required_args)
+ model_args.update(kwargs)
+ composed_info = validate_get_composed_info(
+ constant_args, model_args, self)
+ self._composed_instances = composed_info[0]
+ self._var_name_to_model_instances = composed_info[1]
+ self._additional_properties_model_instances = composed_info[2]
+ unused_args = composed_info[3]
+
+ for var_name, var_value in required_args.items():
+ setattr(self, var_name, var_value)
+ for var_name, var_value in kwargs.items():
+ if var_name in unused_args and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ not self._additional_properties_model_instances:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+
+ @cached_property
+ def _composed_schemas():
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error beause the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ lazy_import()
+ return {
+ 'anyOf': [
+ ],
+ 'allOf': [
+ QuantFormula,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_calculation_parameters.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_calculation_parameters.py
index 5e4e8cb3..588d616f 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_calculation_parameters.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_calculation_parameters.py
@@ -27,24 +27,6 @@
validate_get_composed_info,
)
-def lazy_import():
- from fds.analyticsapi.engines.model.quant_date_list import QuantDateList
- from fds.analyticsapi.engines.model.quant_fds_date import QuantFdsDate
- from fds.analyticsapi.engines.model.quant_fql_expression import QuantFqlExpression
- from fds.analyticsapi.engines.model.quant_identifier_universe import QuantIdentifierUniverse
- from fds.analyticsapi.engines.model.quant_screening_expression import QuantScreeningExpression
- from fds.analyticsapi.engines.model.quant_screening_expression_universe import QuantScreeningExpressionUniverse
- from fds.analyticsapi.engines.model.quant_universal_screen_parameter import QuantUniversalScreenParameter
- from fds.analyticsapi.engines.model.quant_universal_screen_universe import QuantUniversalScreenUniverse
- globals()['QuantDateList'] = QuantDateList
- globals()['QuantFdsDate'] = QuantFdsDate
- globals()['QuantFqlExpression'] = QuantFqlExpression
- globals()['QuantIdentifierUniverse'] = QuantIdentifierUniverse
- globals()['QuantScreeningExpression'] = QuantScreeningExpression
- globals()['QuantScreeningExpressionUniverse'] = QuantScreeningExpressionUniverse
- globals()['QuantUniversalScreenParameter'] = QuantUniversalScreenParameter
- globals()['QuantUniversalScreenUniverse'] = QuantUniversalScreenUniverse
-
class QuantCalculationParameters(ModelNormal):
"""NOTE: This class is auto generated by OpenAPI Generator.
@@ -90,17 +72,10 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
- lazy_import()
return {
- 'screening_expression_universe': (QuantScreeningExpressionUniverse,), # noqa: E501
- 'universal_screen_universe': (QuantUniversalScreenUniverse,), # noqa: E501
- 'identifier_universe': (QuantIdentifierUniverse,), # noqa: E501
- 'fds_date': (QuantFdsDate,), # noqa: E501
- 'date_list': (QuantDateList,), # noqa: E501
- 'screening_expression': ([QuantScreeningExpression],), # noqa: E501
- 'fql_expression': ([QuantFqlExpression],), # noqa: E501
- 'universal_screen_parameter': ([QuantUniversalScreenParameter],), # noqa: E501
- 'all_universal_screen_parameters': ([object],), # noqa: E501
+ 'universe': (object,), # noqa: E501
+ 'dates': (object,), # noqa: E501
+ 'formulas': ([object],), # noqa: E501
}
@cached_property
@@ -109,15 +84,9 @@ def discriminator():
attribute_map = {
- 'screening_expression_universe': 'screeningExpressionUniverse', # noqa: E501
- 'universal_screen_universe': 'universalScreenUniverse', # noqa: E501
- 'identifier_universe': 'identifierUniverse', # noqa: E501
- 'fds_date': 'fdsDate', # noqa: E501
- 'date_list': 'dateList', # noqa: E501
- 'screening_expression': 'screeningExpression', # noqa: E501
- 'fql_expression': 'fqlExpression', # noqa: E501
- 'universal_screen_parameter': 'universalScreenParameter', # noqa: E501
- 'all_universal_screen_parameters': 'allUniversalScreenParameters', # noqa: E501
+ 'universe': 'universe', # noqa: E501
+ 'dates': 'dates', # noqa: E501
+ 'formulas': 'formulas', # noqa: E501
}
_composed_schemas = {}
@@ -166,15 +135,9 @@ def __init__(self, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- screening_expression_universe (QuantScreeningExpressionUniverse): [optional] # noqa: E501
- universal_screen_universe (QuantUniversalScreenUniverse): [optional] # noqa: E501
- identifier_universe (QuantIdentifierUniverse): [optional] # noqa: E501
- fds_date (QuantFdsDate): [optional] # noqa: E501
- date_list (QuantDateList): [optional] # noqa: E501
- screening_expression ([QuantScreeningExpression]): [optional] # noqa: E501
- fql_expression ([QuantFqlExpression]): [optional] # noqa: E501
- universal_screen_parameter ([QuantUniversalScreenParameter]): [optional] # noqa: E501
- all_universal_screen_parameters ([object]): [optional] # noqa: E501
+ universe (object): [optional] # noqa: E501
+ dates (object): [optional] # noqa: E501
+ formulas ([object]): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_date.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_date.py
new file mode 100644
index 00000000..1f039f7e
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_date.py
@@ -0,0 +1,182 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantDate(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ ('source',): {
+ 'FDSDATE': "FdsDate",
+ 'DATELIST': "DateList",
+ },
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'source': (str,), # noqa: E501
+ 'frequency': (str,), # noqa: E501
+ 'calendar': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'source': 'source', # noqa: E501
+ 'frequency': 'frequency', # noqa: E501
+ 'calendar': 'calendar', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, source, frequency, calendar, *args, **kwargs): # noqa: E501
+ """QuantDate - a model defined in OpenAPI
+
+ Args:
+ source (str):
+ frequency (str):
+ calendar (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.source = source
+ self.frequency = frequency
+ self.calendar = calendar
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_date_list.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_date_list.py
index 11d457c0..69432eca 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_date_list.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_date_list.py
@@ -27,8 +27,12 @@
validate_get_composed_info,
)
+def lazy_import():
+ from fds.analyticsapi.engines.model.quant_date import QuantDate
+ globals()['QuantDate'] = QuantDate
-class QuantDateList(ModelNormal):
+
+class QuantDateList(ModelComposed):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
@@ -53,6 +57,10 @@ class QuantDateList(ModelNormal):
"""
allowed_values = {
+ ('source',): {
+ 'FDSDATE': "FdsDate",
+ 'DATELIST': "DateList",
+ },
}
validations = {
@@ -72,7 +80,9 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
+ 'source': (str,), # noqa: E501
'frequency': (str,), # noqa: E501
'calendar': (str,), # noqa: E501
'dates': ([str],), # noqa: E501
@@ -84,13 +94,12 @@ def discriminator():
attribute_map = {
+ 'source': 'source', # noqa: E501
'frequency': 'frequency', # noqa: E501
'calendar': 'calendar', # noqa: E501
'dates': 'dates', # noqa: E501
}
- _composed_schemas = {}
-
required_properties = set([
'_data_store',
'_check_type',
@@ -98,13 +107,17 @@ def discriminator():
'_path_to_item',
'_configuration',
'_visited_composed_classes',
+ '_composed_instances',
+ '_var_name_to_model_instances',
+ '_additional_properties_model_instances',
])
@convert_js_args_to_python_args
- def __init__(self, frequency, calendar, *args, **kwargs): # noqa: E501
+ def __init__(self, source, frequency, calendar, *args, **kwargs): # noqa: E501
"""QuantDateList - a model defined in OpenAPI
Args:
+ source (str):
frequency (str):
calendar (str):
@@ -165,13 +178,55 @@ def __init__(self, frequency, calendar, *args, **kwargs): # noqa: E501
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
- self.frequency = frequency
- self.calendar = calendar
+ constant_args = {
+ '_check_type': _check_type,
+ '_path_to_item': _path_to_item,
+ '_spec_property_naming': _spec_property_naming,
+ '_configuration': _configuration,
+ '_visited_composed_classes': self._visited_composed_classes,
+ }
+ required_args = {
+ 'source': source,
+ 'frequency': frequency,
+ 'calendar': calendar,
+ }
+ model_args = {}
+ model_args.update(required_args)
+ model_args.update(kwargs)
+ composed_info = validate_get_composed_info(
+ constant_args, model_args, self)
+ self._composed_instances = composed_info[0]
+ self._var_name_to_model_instances = composed_info[1]
+ self._additional_properties_model_instances = composed_info[2]
+ unused_args = composed_info[3]
+
+ for var_name, var_value in required_args.items():
+ setattr(self, var_name, var_value)
for var_name, var_value in kwargs.items():
- if var_name not in self.attribute_map and \
+ if var_name in unused_args and \
self._configuration is not None and \
self._configuration.discard_unknown_keys and \
- self.additional_properties_type is None:
+ not self._additional_properties_model_instances:
# discard variable.
continue
setattr(self, var_name, var_value)
+
+ @cached_property
+ def _composed_schemas():
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error beause the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ lazy_import()
+ return {
+ 'anyOf': [
+ ],
+ 'allOf': [
+ QuantDate,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_date_list_obsolete.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_date_list_obsolete.py
new file mode 100644
index 00000000..db6ba725
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_date_list_obsolete.py
@@ -0,0 +1,177 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantDateListObsolete(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'frequency': (str,), # noqa: E501
+ 'calendar': (str,), # noqa: E501
+ 'dates': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'frequency': 'frequency', # noqa: E501
+ 'calendar': 'calendar', # noqa: E501
+ 'dates': 'dates', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, frequency, calendar, *args, **kwargs): # noqa: E501
+ """QuantDateListObsolete - a model defined in OpenAPI
+
+ Args:
+ frequency (str):
+ calendar (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ dates ([str]): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.frequency = frequency
+ self.calendar = calendar
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fds_date.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fds_date.py
index 1bdb9d49..0f74f8a9 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fds_date.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fds_date.py
@@ -27,8 +27,12 @@
validate_get_composed_info,
)
+def lazy_import():
+ from fds.analyticsapi.engines.model.quant_date import QuantDate
+ globals()['QuantDate'] = QuantDate
-class QuantFdsDate(ModelNormal):
+
+class QuantFdsDate(ModelComposed):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
@@ -53,6 +57,10 @@ class QuantFdsDate(ModelNormal):
"""
allowed_values = {
+ ('source',): {
+ 'FDSDATE': "FdsDate",
+ 'DATELIST': "DateList",
+ },
}
validations = {
@@ -72,9 +80,11 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'start_date': (str,), # noqa: E501
'end_date': (str,), # noqa: E501
+ 'source': (str,), # noqa: E501
'frequency': (str,), # noqa: E501
'calendar': (str,), # noqa: E501
}
@@ -87,12 +97,11 @@ def discriminator():
attribute_map = {
'start_date': 'startDate', # noqa: E501
'end_date': 'endDate', # noqa: E501
+ 'source': 'source', # noqa: E501
'frequency': 'frequency', # noqa: E501
'calendar': 'calendar', # noqa: E501
}
- _composed_schemas = {}
-
required_properties = set([
'_data_store',
'_check_type',
@@ -100,15 +109,19 @@ def discriminator():
'_path_to_item',
'_configuration',
'_visited_composed_classes',
+ '_composed_instances',
+ '_var_name_to_model_instances',
+ '_additional_properties_model_instances',
])
@convert_js_args_to_python_args
- def __init__(self, start_date, end_date, frequency, calendar, *args, **kwargs): # noqa: E501
+ def __init__(self, start_date, end_date, source, frequency, calendar, *args, **kwargs): # noqa: E501
"""QuantFdsDate - a model defined in OpenAPI
Args:
start_date (str):
end_date (str):
+ source (str):
frequency (str):
calendar (str):
@@ -168,15 +181,57 @@ def __init__(self, start_date, end_date, frequency, calendar, *args, **kwargs):
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
- self.start_date = start_date
- self.end_date = end_date
- self.frequency = frequency
- self.calendar = calendar
+ constant_args = {
+ '_check_type': _check_type,
+ '_path_to_item': _path_to_item,
+ '_spec_property_naming': _spec_property_naming,
+ '_configuration': _configuration,
+ '_visited_composed_classes': self._visited_composed_classes,
+ }
+ required_args = {
+ 'start_date': start_date,
+ 'end_date': end_date,
+ 'source': source,
+ 'frequency': frequency,
+ 'calendar': calendar,
+ }
+ model_args = {}
+ model_args.update(required_args)
+ model_args.update(kwargs)
+ composed_info = validate_get_composed_info(
+ constant_args, model_args, self)
+ self._composed_instances = composed_info[0]
+ self._var_name_to_model_instances = composed_info[1]
+ self._additional_properties_model_instances = composed_info[2]
+ unused_args = composed_info[3]
+
+ for var_name, var_value in required_args.items():
+ setattr(self, var_name, var_value)
for var_name, var_value in kwargs.items():
- if var_name not in self.attribute_map and \
+ if var_name in unused_args and \
self._configuration is not None and \
self._configuration.discard_unknown_keys and \
- self.additional_properties_type is None:
+ not self._additional_properties_model_instances:
# discard variable.
continue
setattr(self, var_name, var_value)
+
+ @cached_property
+ def _composed_schemas():
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error beause the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ lazy_import()
+ return {
+ 'anyOf': [
+ ],
+ 'allOf': [
+ QuantDate,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fds_date_obsolete.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fds_date_obsolete.py
new file mode 100644
index 00000000..38133228
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fds_date_obsolete.py
@@ -0,0 +1,182 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantFdsDateObsolete(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'start_date': (str,), # noqa: E501
+ 'end_date': (str,), # noqa: E501
+ 'frequency': (str,), # noqa: E501
+ 'calendar': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'start_date': 'startDate', # noqa: E501
+ 'end_date': 'endDate', # noqa: E501
+ 'frequency': 'frequency', # noqa: E501
+ 'calendar': 'calendar', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, start_date, end_date, frequency, calendar, *args, **kwargs): # noqa: E501
+ """QuantFdsDateObsolete - a model defined in OpenAPI
+
+ Args:
+ start_date (str):
+ end_date (str):
+ frequency (str):
+ calendar (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.start_date = start_date
+ self.end_date = end_date
+ self.frequency = frequency
+ self.calendar = calendar
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_formula.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_formula.py
new file mode 100644
index 00000000..1a4a873c
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_formula.py
@@ -0,0 +1,176 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantFormula(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ ('source',): {
+ 'SCREENINGEXPRESSION': "ScreeningExpression",
+ 'FQLEXPRESSION': "FqlExpression",
+ 'UNIVERSALSCREENPARAMETER': "UniversalScreenParameter",
+ 'ALLUNIVERSALSCREENPARAMETERS': "AllUniversalScreenParameters",
+ },
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'source': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'source': 'source', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, source, *args, **kwargs): # noqa: E501
+ """QuantFormula - a model defined in OpenAPI
+
+ Args:
+ source (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.source = source
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fql_expression.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fql_expression.py
index dfb15a07..0b545a34 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fql_expression.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fql_expression.py
@@ -27,8 +27,12 @@
validate_get_composed_info,
)
+def lazy_import():
+ from fds.analyticsapi.engines.model.quant_formula import QuantFormula
+ globals()['QuantFormula'] = QuantFormula
-class QuantFqlExpression(ModelNormal):
+
+class QuantFqlExpression(ModelComposed):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
@@ -53,6 +57,12 @@ class QuantFqlExpression(ModelNormal):
"""
allowed_values = {
+ ('source',): {
+ 'SCREENINGEXPRESSION': "ScreeningExpression",
+ 'FQLEXPRESSION': "FqlExpression",
+ 'UNIVERSALSCREENPARAMETER': "UniversalScreenParameter",
+ 'ALLUNIVERSALSCREENPARAMETERS': "AllUniversalScreenParameters",
+ },
}
validations = {
@@ -72,9 +82,11 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'expr': (str,), # noqa: E501
'name': (str,), # noqa: E501
+ 'source': (str,), # noqa: E501
}
@cached_property
@@ -85,10 +97,9 @@ def discriminator():
attribute_map = {
'expr': 'expr', # noqa: E501
'name': 'name', # noqa: E501
+ 'source': 'source', # noqa: E501
}
- _composed_schemas = {}
-
required_properties = set([
'_data_store',
'_check_type',
@@ -96,15 +107,19 @@ def discriminator():
'_path_to_item',
'_configuration',
'_visited_composed_classes',
+ '_composed_instances',
+ '_var_name_to_model_instances',
+ '_additional_properties_model_instances',
])
@convert_js_args_to_python_args
- def __init__(self, expr, name, *args, **kwargs): # noqa: E501
+ def __init__(self, expr, name, source, *args, **kwargs): # noqa: E501
"""QuantFqlExpression - a model defined in OpenAPI
Args:
expr (str):
name (str):
+ source (str):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -162,13 +177,55 @@ def __init__(self, expr, name, *args, **kwargs): # noqa: E501
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
- self.expr = expr
- self.name = name
+ constant_args = {
+ '_check_type': _check_type,
+ '_path_to_item': _path_to_item,
+ '_spec_property_naming': _spec_property_naming,
+ '_configuration': _configuration,
+ '_visited_composed_classes': self._visited_composed_classes,
+ }
+ required_args = {
+ 'expr': expr,
+ 'name': name,
+ 'source': source,
+ }
+ model_args = {}
+ model_args.update(required_args)
+ model_args.update(kwargs)
+ composed_info = validate_get_composed_info(
+ constant_args, model_args, self)
+ self._composed_instances = composed_info[0]
+ self._var_name_to_model_instances = composed_info[1]
+ self._additional_properties_model_instances = composed_info[2]
+ unused_args = composed_info[3]
+
+ for var_name, var_value in required_args.items():
+ setattr(self, var_name, var_value)
for var_name, var_value in kwargs.items():
- if var_name not in self.attribute_map and \
+ if var_name in unused_args and \
self._configuration is not None and \
self._configuration.discard_unknown_keys and \
- self.additional_properties_type is None:
+ not self._additional_properties_model_instances:
# discard variable.
continue
setattr(self, var_name, var_value)
+
+ @cached_property
+ def _composed_schemas():
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error beause the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ lazy_import()
+ return {
+ 'anyOf': [
+ ],
+ 'allOf': [
+ QuantFormula,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fql_expression_obsolete.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fql_expression_obsolete.py
new file mode 100644
index 00000000..ff810bae
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_fql_expression_obsolete.py
@@ -0,0 +1,174 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantFqlExpressionObsolete(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'expr': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'expr': 'expr', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, expr, name, *args, **kwargs): # noqa: E501
+ """QuantFqlExpressionObsolete - a model defined in OpenAPI
+
+ Args:
+ expr (str):
+ name (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.expr = expr
+ self.name = name
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_identifier_universe.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_identifier_universe.py
index ff69b94f..008553df 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_identifier_universe.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_identifier_universe.py
@@ -27,8 +27,12 @@
validate_get_composed_info,
)
+def lazy_import():
+ from fds.analyticsapi.engines.model.quant_universe import QuantUniverse
+ globals()['QuantUniverse'] = QuantUniverse
-class QuantIdentifierUniverse(ModelNormal):
+
+class QuantIdentifierUniverse(ModelComposed):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
@@ -57,6 +61,11 @@ class QuantIdentifierUniverse(ModelNormal):
'EQUITY': "Equity",
'DEBT': "Debt",
},
+ ('source',): {
+ 'SCREENINGEXPRESSIONUNIVERSE': "ScreeningExpressionUniverse",
+ 'UNIVERSALSCREENUNIVERSE': "UniversalScreenUniverse",
+ 'IDENTIFIERUNIVERSE': "IdentifierUniverse",
+ },
}
validations = {
@@ -76,9 +85,11 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'universe_type': (str,), # noqa: E501
'identifiers': ([str],), # noqa: E501
+ 'source': (str,), # noqa: E501
}
@cached_property
@@ -89,10 +100,9 @@ def discriminator():
attribute_map = {
'universe_type': 'universeType', # noqa: E501
'identifiers': 'identifiers', # noqa: E501
+ 'source': 'source', # noqa: E501
}
- _composed_schemas = {}
-
required_properties = set([
'_data_store',
'_check_type',
@@ -100,15 +110,19 @@ def discriminator():
'_path_to_item',
'_configuration',
'_visited_composed_classes',
+ '_composed_instances',
+ '_var_name_to_model_instances',
+ '_additional_properties_model_instances',
])
@convert_js_args_to_python_args
- def __init__(self, universe_type, identifiers, *args, **kwargs): # noqa: E501
+ def __init__(self, universe_type, identifiers, source, *args, **kwargs): # noqa: E501
"""QuantIdentifierUniverse - a model defined in OpenAPI
Args:
universe_type (str):
identifiers ([str]):
+ source (str):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -166,13 +180,55 @@ def __init__(self, universe_type, identifiers, *args, **kwargs): # noqa: E501
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
- self.universe_type = universe_type
- self.identifiers = identifiers
+ constant_args = {
+ '_check_type': _check_type,
+ '_path_to_item': _path_to_item,
+ '_spec_property_naming': _spec_property_naming,
+ '_configuration': _configuration,
+ '_visited_composed_classes': self._visited_composed_classes,
+ }
+ required_args = {
+ 'universe_type': universe_type,
+ 'identifiers': identifiers,
+ 'source': source,
+ }
+ model_args = {}
+ model_args.update(required_args)
+ model_args.update(kwargs)
+ composed_info = validate_get_composed_info(
+ constant_args, model_args, self)
+ self._composed_instances = composed_info[0]
+ self._var_name_to_model_instances = composed_info[1]
+ self._additional_properties_model_instances = composed_info[2]
+ unused_args = composed_info[3]
+
+ for var_name, var_value in required_args.items():
+ setattr(self, var_name, var_value)
for var_name, var_value in kwargs.items():
- if var_name not in self.attribute_map and \
+ if var_name in unused_args and \
self._configuration is not None and \
self._configuration.discard_unknown_keys and \
- self.additional_properties_type is None:
+ not self._additional_properties_model_instances:
# discard variable.
continue
setattr(self, var_name, var_value)
+
+ @cached_property
+ def _composed_schemas():
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error beause the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ lazy_import()
+ return {
+ 'anyOf': [
+ ],
+ 'allOf': [
+ QuantUniverse,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_identifier_universe_obsolete.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_identifier_universe_obsolete.py
new file mode 100644
index 00000000..0089d027
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_identifier_universe_obsolete.py
@@ -0,0 +1,186 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantIdentifierUniverseObsolete(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ ('universe_type',): {
+ 'EQUITY': "Equity",
+ 'DEBT': "Debt",
+ },
+ ('source',): {
+ 'SCREENINGEXPRESSIONUNIVERSE': "ScreeningExpressionUniverse",
+ 'UNIVERSALSCREENUNIVERSE': "UniversalScreenUniverse",
+ 'IDENTIFIERUNIVERSE': "IdentifierUniverse",
+ },
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'universe_type': (str,), # noqa: E501
+ 'identifiers': ([str],), # noqa: E501
+ 'source': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'universe_type': 'universeType', # noqa: E501
+ 'identifiers': 'identifiers', # noqa: E501
+ 'source': 'source', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, universe_type, identifiers, *args, **kwargs): # noqa: E501
+ """QuantIdentifierUniverseObsolete - a model defined in OpenAPI
+
+ Args:
+ universe_type (str):
+ identifiers ([str]):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ source (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.universe_type = universe_type
+ self.identifiers = identifiers
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression.py
index 0c910ec5..0289f0ff 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression.py
@@ -27,8 +27,12 @@
validate_get_composed_info,
)
+def lazy_import():
+ from fds.analyticsapi.engines.model.quant_formula import QuantFormula
+ globals()['QuantFormula'] = QuantFormula
-class QuantScreeningExpression(ModelNormal):
+
+class QuantScreeningExpression(ModelComposed):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
@@ -53,6 +57,12 @@ class QuantScreeningExpression(ModelNormal):
"""
allowed_values = {
+ ('source',): {
+ 'SCREENINGEXPRESSION': "ScreeningExpression",
+ 'FQLEXPRESSION': "FqlExpression",
+ 'UNIVERSALSCREENPARAMETER': "UniversalScreenParameter",
+ 'ALLUNIVERSALSCREENPARAMETERS': "AllUniversalScreenParameters",
+ },
}
validations = {
@@ -72,9 +82,11 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'expr': (str,), # noqa: E501
'name': (str,), # noqa: E501
+ 'source': (str,), # noqa: E501
}
@cached_property
@@ -85,10 +97,9 @@ def discriminator():
attribute_map = {
'expr': 'expr', # noqa: E501
'name': 'name', # noqa: E501
+ 'source': 'source', # noqa: E501
}
- _composed_schemas = {}
-
required_properties = set([
'_data_store',
'_check_type',
@@ -96,15 +107,19 @@ def discriminator():
'_path_to_item',
'_configuration',
'_visited_composed_classes',
+ '_composed_instances',
+ '_var_name_to_model_instances',
+ '_additional_properties_model_instances',
])
@convert_js_args_to_python_args
- def __init__(self, expr, name, *args, **kwargs): # noqa: E501
+ def __init__(self, expr, name, source, *args, **kwargs): # noqa: E501
"""QuantScreeningExpression - a model defined in OpenAPI
Args:
expr (str):
name (str):
+ source (str):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -162,13 +177,55 @@ def __init__(self, expr, name, *args, **kwargs): # noqa: E501
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
- self.expr = expr
- self.name = name
+ constant_args = {
+ '_check_type': _check_type,
+ '_path_to_item': _path_to_item,
+ '_spec_property_naming': _spec_property_naming,
+ '_configuration': _configuration,
+ '_visited_composed_classes': self._visited_composed_classes,
+ }
+ required_args = {
+ 'expr': expr,
+ 'name': name,
+ 'source': source,
+ }
+ model_args = {}
+ model_args.update(required_args)
+ model_args.update(kwargs)
+ composed_info = validate_get_composed_info(
+ constant_args, model_args, self)
+ self._composed_instances = composed_info[0]
+ self._var_name_to_model_instances = composed_info[1]
+ self._additional_properties_model_instances = composed_info[2]
+ unused_args = composed_info[3]
+
+ for var_name, var_value in required_args.items():
+ setattr(self, var_name, var_value)
for var_name, var_value in kwargs.items():
- if var_name not in self.attribute_map and \
+ if var_name in unused_args and \
self._configuration is not None and \
self._configuration.discard_unknown_keys and \
- self.additional_properties_type is None:
+ not self._additional_properties_model_instances:
# discard variable.
continue
setattr(self, var_name, var_value)
+
+ @cached_property
+ def _composed_schemas():
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error beause the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ lazy_import()
+ return {
+ 'anyOf': [
+ ],
+ 'allOf': [
+ QuantFormula,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression_obsolete.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression_obsolete.py
new file mode 100644
index 00000000..9cb60b9e
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression_obsolete.py
@@ -0,0 +1,174 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantScreeningExpressionObsolete(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'expr': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'expr': 'expr', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, expr, name, *args, **kwargs): # noqa: E501
+ """QuantScreeningExpressionObsolete - a model defined in OpenAPI
+
+ Args:
+ expr (str):
+ name (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.expr = expr
+ self.name = name
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression_universe.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression_universe.py
index 0d4f80bc..710624ca 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression_universe.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression_universe.py
@@ -27,8 +27,12 @@
validate_get_composed_info,
)
+def lazy_import():
+ from fds.analyticsapi.engines.model.quant_universe import QuantUniverse
+ globals()['QuantUniverse'] = QuantUniverse
-class QuantScreeningExpressionUniverse(ModelNormal):
+
+class QuantScreeningExpressionUniverse(ModelComposed):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
@@ -57,6 +61,11 @@ class QuantScreeningExpressionUniverse(ModelNormal):
'EQUITY': "Equity",
'DEBT': "Debt",
},
+ ('source',): {
+ 'SCREENINGEXPRESSIONUNIVERSE': "ScreeningExpressionUniverse",
+ 'UNIVERSALSCREENUNIVERSE': "UniversalScreenUniverse",
+ 'IDENTIFIERUNIVERSE': "IdentifierUniverse",
+ },
}
validations = {
@@ -76,9 +85,11 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'universe_expr': (str,), # noqa: E501
'universe_type': (str,), # noqa: E501
+ 'source': (str,), # noqa: E501
'security_expr': (str,), # noqa: E501
}
@@ -90,11 +101,10 @@ def discriminator():
attribute_map = {
'universe_expr': 'universeExpr', # noqa: E501
'universe_type': 'universeType', # noqa: E501
+ 'source': 'source', # noqa: E501
'security_expr': 'securityExpr', # noqa: E501
}
- _composed_schemas = {}
-
required_properties = set([
'_data_store',
'_check_type',
@@ -102,15 +112,19 @@ def discriminator():
'_path_to_item',
'_configuration',
'_visited_composed_classes',
+ '_composed_instances',
+ '_var_name_to_model_instances',
+ '_additional_properties_model_instances',
])
@convert_js_args_to_python_args
- def __init__(self, universe_expr, universe_type, *args, **kwargs): # noqa: E501
+ def __init__(self, universe_expr, universe_type, source, *args, **kwargs): # noqa: E501
"""QuantScreeningExpressionUniverse - a model defined in OpenAPI
Args:
universe_expr (str):
universe_type (str):
+ source (str):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -169,13 +183,55 @@ def __init__(self, universe_expr, universe_type, *args, **kwargs): # noqa: E501
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
- self.universe_expr = universe_expr
- self.universe_type = universe_type
+ constant_args = {
+ '_check_type': _check_type,
+ '_path_to_item': _path_to_item,
+ '_spec_property_naming': _spec_property_naming,
+ '_configuration': _configuration,
+ '_visited_composed_classes': self._visited_composed_classes,
+ }
+ required_args = {
+ 'universe_expr': universe_expr,
+ 'universe_type': universe_type,
+ 'source': source,
+ }
+ model_args = {}
+ model_args.update(required_args)
+ model_args.update(kwargs)
+ composed_info = validate_get_composed_info(
+ constant_args, model_args, self)
+ self._composed_instances = composed_info[0]
+ self._var_name_to_model_instances = composed_info[1]
+ self._additional_properties_model_instances = composed_info[2]
+ unused_args = composed_info[3]
+
+ for var_name, var_value in required_args.items():
+ setattr(self, var_name, var_value)
for var_name, var_value in kwargs.items():
- if var_name not in self.attribute_map and \
+ if var_name in unused_args and \
self._configuration is not None and \
self._configuration.discard_unknown_keys and \
- self.additional_properties_type is None:
+ not self._additional_properties_model_instances:
# discard variable.
continue
setattr(self, var_name, var_value)
+
+ @cached_property
+ def _composed_schemas():
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error beause the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ lazy_import()
+ return {
+ 'anyOf': [
+ ],
+ 'allOf': [
+ QuantUniverse,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression_universe_obsolete.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression_universe_obsolete.py
new file mode 100644
index 00000000..36d2faf0
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_screening_expression_universe_obsolete.py
@@ -0,0 +1,189 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantScreeningExpressionUniverseObsolete(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ ('universe_type',): {
+ 'EQUITY': "Equity",
+ 'DEBT': "Debt",
+ },
+ ('source',): {
+ 'SCREENINGEXPRESSIONUNIVERSE': "ScreeningExpressionUniverse",
+ 'UNIVERSALSCREENUNIVERSE': "UniversalScreenUniverse",
+ 'IDENTIFIERUNIVERSE': "IdentifierUniverse",
+ },
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'universe_expr': (str,), # noqa: E501
+ 'universe_type': (str,), # noqa: E501
+ 'security_expr': (str,), # noqa: E501
+ 'source': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'universe_expr': 'universeExpr', # noqa: E501
+ 'universe_type': 'universeType', # noqa: E501
+ 'security_expr': 'securityExpr', # noqa: E501
+ 'source': 'source', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, universe_expr, universe_type, *args, **kwargs): # noqa: E501
+ """QuantScreeningExpressionUniverseObsolete - a model defined in OpenAPI
+
+ Args:
+ universe_expr (str):
+ universe_type (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ security_expr (str): [optional] # noqa: E501
+ source (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.universe_expr = universe_expr
+ self.universe_type = universe_type
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_parameter.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_parameter.py
index 90b7fb92..6369c461 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_parameter.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_parameter.py
@@ -27,8 +27,12 @@
validate_get_composed_info,
)
+def lazy_import():
+ from fds.analyticsapi.engines.model.quant_formula import QuantFormula
+ globals()['QuantFormula'] = QuantFormula
-class QuantUniversalScreenParameter(ModelNormal):
+
+class QuantUniversalScreenParameter(ModelComposed):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
@@ -53,6 +57,12 @@ class QuantUniversalScreenParameter(ModelNormal):
"""
allowed_values = {
+ ('source',): {
+ 'SCREENINGEXPRESSION': "ScreeningExpression",
+ 'FQLEXPRESSION': "FqlExpression",
+ 'UNIVERSALSCREENPARAMETER': "UniversalScreenParameter",
+ 'ALLUNIVERSALSCREENPARAMETERS': "AllUniversalScreenParameters",
+ },
}
validations = {
@@ -72,9 +82,11 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'reference_name': (str,), # noqa: E501
'name': (str,), # noqa: E501
+ 'source': (str,), # noqa: E501
}
@cached_property
@@ -85,10 +97,9 @@ def discriminator():
attribute_map = {
'reference_name': 'referenceName', # noqa: E501
'name': 'name', # noqa: E501
+ 'source': 'source', # noqa: E501
}
- _composed_schemas = {}
-
required_properties = set([
'_data_store',
'_check_type',
@@ -96,15 +107,19 @@ def discriminator():
'_path_to_item',
'_configuration',
'_visited_composed_classes',
+ '_composed_instances',
+ '_var_name_to_model_instances',
+ '_additional_properties_model_instances',
])
@convert_js_args_to_python_args
- def __init__(self, reference_name, name, *args, **kwargs): # noqa: E501
+ def __init__(self, reference_name, name, source, *args, **kwargs): # noqa: E501
"""QuantUniversalScreenParameter - a model defined in OpenAPI
Args:
reference_name (str):
name (str):
+ source (str):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -162,13 +177,55 @@ def __init__(self, reference_name, name, *args, **kwargs): # noqa: E501
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
- self.reference_name = reference_name
- self.name = name
+ constant_args = {
+ '_check_type': _check_type,
+ '_path_to_item': _path_to_item,
+ '_spec_property_naming': _spec_property_naming,
+ '_configuration': _configuration,
+ '_visited_composed_classes': self._visited_composed_classes,
+ }
+ required_args = {
+ 'reference_name': reference_name,
+ 'name': name,
+ 'source': source,
+ }
+ model_args = {}
+ model_args.update(required_args)
+ model_args.update(kwargs)
+ composed_info = validate_get_composed_info(
+ constant_args, model_args, self)
+ self._composed_instances = composed_info[0]
+ self._var_name_to_model_instances = composed_info[1]
+ self._additional_properties_model_instances = composed_info[2]
+ unused_args = composed_info[3]
+
+ for var_name, var_value in required_args.items():
+ setattr(self, var_name, var_value)
for var_name, var_value in kwargs.items():
- if var_name not in self.attribute_map and \
+ if var_name in unused_args and \
self._configuration is not None and \
self._configuration.discard_unknown_keys and \
- self.additional_properties_type is None:
+ not self._additional_properties_model_instances:
# discard variable.
continue
setattr(self, var_name, var_value)
+
+ @cached_property
+ def _composed_schemas():
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error beause the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ lazy_import()
+ return {
+ 'anyOf': [
+ ],
+ 'allOf': [
+ QuantFormula,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_parameter_obsolete.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_parameter_obsolete.py
new file mode 100644
index 00000000..2946e938
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_parameter_obsolete.py
@@ -0,0 +1,174 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantUniversalScreenParameterObsolete(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'reference_name': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'reference_name': 'referenceName', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, reference_name, name, *args, **kwargs): # noqa: E501
+ """QuantUniversalScreenParameterObsolete - a model defined in OpenAPI
+
+ Args:
+ reference_name (str):
+ name (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.reference_name = reference_name
+ self.name = name
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_universe.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_universe.py
index 97db0501..8145c424 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_universe.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_universe.py
@@ -27,8 +27,12 @@
validate_get_composed_info,
)
+def lazy_import():
+ from fds.analyticsapi.engines.model.quant_universe import QuantUniverse
+ globals()['QuantUniverse'] = QuantUniverse
-class QuantUniversalScreenUniverse(ModelNormal):
+
+class QuantUniversalScreenUniverse(ModelComposed):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
@@ -53,6 +57,11 @@ class QuantUniversalScreenUniverse(ModelNormal):
"""
allowed_values = {
+ ('source',): {
+ 'SCREENINGEXPRESSIONUNIVERSE': "ScreeningExpressionUniverse",
+ 'UNIVERSALSCREENUNIVERSE': "UniversalScreenUniverse",
+ 'IDENTIFIERUNIVERSE': "IdentifierUniverse",
+ },
}
validations = {
@@ -72,8 +81,10 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'screen': (str,), # noqa: E501
+ 'source': (str,), # noqa: E501
}
@cached_property
@@ -83,10 +94,9 @@ def discriminator():
attribute_map = {
'screen': 'screen', # noqa: E501
+ 'source': 'source', # noqa: E501
}
- _composed_schemas = {}
-
required_properties = set([
'_data_store',
'_check_type',
@@ -94,14 +104,18 @@ def discriminator():
'_path_to_item',
'_configuration',
'_visited_composed_classes',
+ '_composed_instances',
+ '_var_name_to_model_instances',
+ '_additional_properties_model_instances',
])
@convert_js_args_to_python_args
- def __init__(self, screen, *args, **kwargs): # noqa: E501
+ def __init__(self, screen, source, *args, **kwargs): # noqa: E501
"""QuantUniversalScreenUniverse - a model defined in OpenAPI
Args:
screen (str):
+ source (str):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -159,12 +173,54 @@ def __init__(self, screen, *args, **kwargs): # noqa: E501
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
- self.screen = screen
+ constant_args = {
+ '_check_type': _check_type,
+ '_path_to_item': _path_to_item,
+ '_spec_property_naming': _spec_property_naming,
+ '_configuration': _configuration,
+ '_visited_composed_classes': self._visited_composed_classes,
+ }
+ required_args = {
+ 'screen': screen,
+ 'source': source,
+ }
+ model_args = {}
+ model_args.update(required_args)
+ model_args.update(kwargs)
+ composed_info = validate_get_composed_info(
+ constant_args, model_args, self)
+ self._composed_instances = composed_info[0]
+ self._var_name_to_model_instances = composed_info[1]
+ self._additional_properties_model_instances = composed_info[2]
+ unused_args = composed_info[3]
+
+ for var_name, var_value in required_args.items():
+ setattr(self, var_name, var_value)
for var_name, var_value in kwargs.items():
- if var_name not in self.attribute_map and \
+ if var_name in unused_args and \
self._configuration is not None and \
self._configuration.discard_unknown_keys and \
- self.additional_properties_type is None:
+ not self._additional_properties_model_instances:
# discard variable.
continue
setattr(self, var_name, var_value)
+
+ @cached_property
+ def _composed_schemas():
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error beause the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ lazy_import()
+ return {
+ 'anyOf': [
+ ],
+ 'allOf': [
+ QuantUniverse,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_universe_obsolete.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_universe_obsolete.py
new file mode 100644
index 00000000..567ccfe7
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universal_screen_universe_obsolete.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantUniversalScreenUniverseObsolete(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ ('source',): {
+ 'SCREENINGEXPRESSIONUNIVERSE': "ScreeningExpressionUniverse",
+ 'UNIVERSALSCREENUNIVERSE': "UniversalScreenUniverse",
+ 'IDENTIFIERUNIVERSE': "IdentifierUniverse",
+ },
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'screen': (str,), # noqa: E501
+ 'source': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'screen': 'screen', # noqa: E501
+ 'source': 'source', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, screen, *args, **kwargs): # noqa: E501
+ """QuantUniversalScreenUniverseObsolete - a model defined in OpenAPI
+
+ Args:
+ screen (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ source (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.screen = screen
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universe.py b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universe.py
new file mode 100644
index 00000000..d2ce0e3a
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/quant_universe.py
@@ -0,0 +1,175 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class QuantUniverse(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ ('source',): {
+ 'SCREENINGEXPRESSIONUNIVERSE': "ScreeningExpressionUniverse",
+ 'UNIVERSALSCREENUNIVERSE': "UniversalScreenUniverse",
+ 'IDENTIFIERUNIVERSE': "IdentifierUniverse",
+ },
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'source': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'source': 'source', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, source, *args, **kwargs): # noqa: E501
+ """QuantUniverse - a model defined in OpenAPI
+
+ Args:
+ source (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.source = source
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/return_type.py b/auto-generated-sdk/fds/analyticsapi/engines/model/return_type.py
new file mode 100644
index 00000000..cab3bbbc
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/return_type.py
@@ -0,0 +1,170 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class ReturnType(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'name': (str,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'id': 'id', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """ReturnType - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ name (str): [optional] # noqa: E501
+ id (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/spar_accounts.py b/auto-generated-sdk/fds/analyticsapi/engines/model/spar_accounts.py
new file mode 100644
index 00000000..02adc018
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/spar_accounts.py
@@ -0,0 +1,172 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.return_type import ReturnType
+ globals()['ReturnType'] = ReturnType
+
+
+class SPARAccounts(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'returns_type': ([ReturnType],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'returns_type': 'returnsType', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """SPARAccounts - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ returns_type ([ReturnType]): List of SPAR returnsType. [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/spar_accounts_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/spar_accounts_root.py
new file mode 100644
index 00000000..f40db8c6
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/spar_accounts_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.spar_accounts import SPARAccounts
+ globals()['SPARAccounts'] = SPARAccounts
+
+
+class SPARAccountsRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': (SPARAccounts,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """SPARAccountsRoot - a model defined in OpenAPI
+
+ Args:
+ data (SPARAccounts):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/spar_benchmark_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/spar_benchmark_root.py
index aabd251d..53b40867 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/spar_benchmark_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/spar_benchmark_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (SPARBenchmark,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/template_content_types.py b/auto-generated-sdk/fds/analyticsapi/engines/model/template_content_types.py
new file mode 100644
index 00000000..09383021
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/template_content_types.py
@@ -0,0 +1,173 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class TemplateContentTypes(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'mandatory': ([str],), # noqa: E501
+ 'optional': ([str],), # noqa: E501
+ 'locked': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'mandatory': 'mandatory', # noqa: E501
+ 'optional': 'optional', # noqa: E501
+ 'locked': 'locked', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """TemplateContentTypes - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ mandatory ([str]): Template mandatory fields. [optional] # noqa: E501
+ optional ([str]): Template optional fields. [optional] # noqa: E501
+ locked ([str]): Template locked fields. [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_parameters.py b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_parameters.py
new file mode 100644
index 00000000..36ca8259
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_parameters.py
@@ -0,0 +1,185 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.pa_component_data import PAComponentData
+ globals()['PAComponentData'] = PAComponentData
+
+
+class TemplatedPAComponentParameters(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'directory': (str,), # noqa: E501
+ 'parent_template_id': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'component_data': (PAComponentData,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'directory': 'directory', # noqa: E501
+ 'parent_template_id': 'parentTemplateId', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'component_data': 'componentData', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, directory, parent_template_id, *args, **kwargs): # noqa: E501
+ """TemplatedPAComponentParameters - a model defined in OpenAPI
+
+ Args:
+ directory (str): Directory to create templated components
+ parent_template_id (str): Parent template id
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ description (str): Component description.. [optional] # noqa: E501
+ component_data (PAComponentData): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.directory = directory
+ self.parent_template_id = parent_template_id
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_parameters_root.py
new file mode 100644
index 00000000..374bc259
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_parameters_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.templated_pa_component_parameters import TemplatedPAComponentParameters
+ globals()['TemplatedPAComponentParameters'] = TemplatedPAComponentParameters
+
+
+class TemplatedPAComponentParametersRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': (TemplatedPAComponentParameters,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """TemplatedPAComponentParametersRoot - a model defined in OpenAPI
+
+ Args:
+ data (TemplatedPAComponentParameters):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_summary.py b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_summary.py
new file mode 100644
index 00000000..d67c0981
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_summary.py
@@ -0,0 +1,176 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class TemplatedPAComponentSummary(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'description': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'parent_template_id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'description': 'description', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'parent_template_id': 'parentTemplateId', # noqa: E501
+ 'type': 'type', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """TemplatedPAComponentSummary - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ description (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ parent_template_id (str): [optional] # noqa: E501
+ type (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_summary_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_summary_root.py
new file mode 100644
index 00000000..2d280fbe
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_summary_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.templated_pa_component_summary import TemplatedPAComponentSummary
+ globals()['TemplatedPAComponentSummary'] = TemplatedPAComponentSummary
+
+
+class TemplatedPAComponentSummaryRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': ({str: (TemplatedPAComponentSummary,)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """TemplatedPAComponentSummaryRoot - a model defined in OpenAPI
+
+ Args:
+ data ({str: (TemplatedPAComponentSummary,)}):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_update_parameters.py b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_update_parameters.py
new file mode 100644
index 00000000..17cadebd
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_update_parameters.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.pa_component_data import PAComponentData
+ globals()['PAComponentData'] = PAComponentData
+
+
+class TemplatedPAComponentUpdateParameters(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'parent_template_id': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'component_data': (PAComponentData,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'parent_template_id': 'parentTemplateId', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'component_data': 'componentData', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """TemplatedPAComponentUpdateParameters - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ parent_template_id (str): Parent template id. [optional] # noqa: E501
+ description (str): Component description.. [optional] # noqa: E501
+ component_data (PAComponentData): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_update_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_update_parameters_root.py
new file mode 100644
index 00000000..f4e0f1db
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/templated_pa_component_update_parameters_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.templated_pa_component_update_parameters import TemplatedPAComponentUpdateParameters
+ globals()['TemplatedPAComponentUpdateParameters'] = TemplatedPAComponentUpdateParameters
+
+
+class TemplatedPAComponentUpdateParametersRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': (TemplatedPAComponentUpdateParameters,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """TemplatedPAComponentUpdateParametersRoot - a model defined in OpenAPI
+
+ Args:
+ data (TemplatedPAComponentUpdateParameters):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template.py
new file mode 100644
index 00000000..6213cb96
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template.py
@@ -0,0 +1,222 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.pa_calculation_column import PACalculationColumn
+ from fds.analyticsapi.engines.model.pa_calculation_group import PACalculationGroup
+ from fds.analyticsapi.engines.model.pa_date_parameters import PADateParameters
+ from fds.analyticsapi.engines.model.pa_identifier import PAIdentifier
+ from fds.analyticsapi.engines.model.template_content_types import TemplateContentTypes
+ globals()['PACalculationColumn'] = PACalculationColumn
+ globals()['PACalculationGroup'] = PACalculationGroup
+ globals()['PADateParameters'] = PADateParameters
+ globals()['PAIdentifier'] = PAIdentifier
+ globals()['TemplateContentTypes'] = TemplateContentTypes
+
+
+class UnlinkedPATemplate(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'directory': (str,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'template_type_id': (str,), # noqa: E501
+ 'snapshot': (bool,), # noqa: E501
+ 'accounts': ([PAIdentifier],), # noqa: E501
+ 'benchmarks': ([PAIdentifier],), # noqa: E501
+ 'columns': ([PACalculationColumn],), # noqa: E501
+ 'dates': (PADateParameters,), # noqa: E501
+ 'groups': ([PACalculationGroup],), # noqa: E501
+ 'currencyisocode': (str,), # noqa: E501
+ 'componentdetail': (str,), # noqa: E501
+ 'content': (TemplateContentTypes,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'category': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'directory': 'directory', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'template_type_id': 'templateTypeId', # noqa: E501
+ 'snapshot': 'snapshot', # noqa: E501
+ 'accounts': 'accounts', # noqa: E501
+ 'benchmarks': 'benchmarks', # noqa: E501
+ 'columns': 'columns', # noqa: E501
+ 'dates': 'dates', # noqa: E501
+ 'groups': 'groups', # noqa: E501
+ 'currencyisocode': 'currencyisocode', # noqa: E501
+ 'componentdetail': 'componentdetail', # noqa: E501
+ 'content': 'content', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'category': 'category', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplate - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ directory (str): [optional] # noqa: E501
+ id (str): [optional] # noqa: E501
+ template_type_id (str): [optional] # noqa: E501
+ snapshot (bool): [optional] # noqa: E501
+ accounts ([PAIdentifier]): [optional] # noqa: E501
+ benchmarks ([PAIdentifier]): [optional] # noqa: E501
+ columns ([PACalculationColumn]): [optional] # noqa: E501
+ dates (PADateParameters): [optional] # noqa: E501
+ groups ([PACalculationGroup]): [optional] # noqa: E501
+ currencyisocode (str): [optional] # noqa: E501
+ componentdetail (str): [optional] # noqa: E501
+ content (TemplateContentTypes): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ category (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type.py
new file mode 100644
index 00000000..9883709a
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type.py
@@ -0,0 +1,170 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class UnlinkedPATemplateCategoryAndType(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'category': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'category': 'category', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateCategoryAndType - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ category (str): Unlinked template category. [optional] # noqa: E501
+ name (str): Unlinked template type. [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_details.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_details.py
new file mode 100644
index 00000000..4578b20c
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_details.py
@@ -0,0 +1,173 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class UnlinkedPATemplateCategoryAndTypeDetails(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'id': (str,), # noqa: E501
+ 'category': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'category': 'category', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateCategoryAndTypeDetails - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ id (str): Type Id. [optional] # noqa: E501
+ category (str): Unlinked template category. [optional] # noqa: E501
+ name (str): Unlinked template type. [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_details_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_details_root.py
new file mode 100644
index 00000000..4a5a571e
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_details_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.unlinked_pa_template_category_and_type_details import UnlinkedPATemplateCategoryAndTypeDetails
+ globals()['UnlinkedPATemplateCategoryAndTypeDetails'] = UnlinkedPATemplateCategoryAndTypeDetails
+
+
+class UnlinkedPATemplateCategoryAndTypeDetailsRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': (UnlinkedPATemplateCategoryAndTypeDetails,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateCategoryAndTypeDetailsRoot - a model defined in OpenAPI
+
+ Args:
+ data (UnlinkedPATemplateCategoryAndTypeDetails):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_root.py
new file mode 100644
index 00000000..ff129b5a
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_category_and_type_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.unlinked_pa_template_category_and_type import UnlinkedPATemplateCategoryAndType
+ globals()['UnlinkedPATemplateCategoryAndType'] = UnlinkedPATemplateCategoryAndType
+
+
+class UnlinkedPATemplateCategoryAndTypeRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': ({str: (UnlinkedPATemplateCategoryAndType,)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateCategoryAndTypeRoot - a model defined in OpenAPI
+
+ Args:
+ data ({str: (UnlinkedPATemplateCategoryAndType,)}):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_parameters.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_parameters.py
new file mode 100644
index 00000000..a38b44e3
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_parameters.py
@@ -0,0 +1,214 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.pa_calculation_column import PACalculationColumn
+ from fds.analyticsapi.engines.model.pa_calculation_group import PACalculationGroup
+ from fds.analyticsapi.engines.model.pa_date_parameters import PADateParameters
+ from fds.analyticsapi.engines.model.pa_identifier import PAIdentifier
+ from fds.analyticsapi.engines.model.template_content_types import TemplateContentTypes
+ globals()['PACalculationColumn'] = PACalculationColumn
+ globals()['PACalculationGroup'] = PACalculationGroup
+ globals()['PADateParameters'] = PADateParameters
+ globals()['PAIdentifier'] = PAIdentifier
+ globals()['TemplateContentTypes'] = TemplateContentTypes
+
+
+class UnlinkedPATemplateParameters(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'directory': (str,), # noqa: E501
+ 'template_type_id': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'accounts': ([PAIdentifier],), # noqa: E501
+ 'benchmarks': ([PAIdentifier],), # noqa: E501
+ 'columns': ([PACalculationColumn],), # noqa: E501
+ 'dates': (PADateParameters,), # noqa: E501
+ 'groups': ([PACalculationGroup],), # noqa: E501
+ 'currencyisocode': (str,), # noqa: E501
+ 'componentdetail': (str,), # noqa: E501
+ 'content': (TemplateContentTypes,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'directory': 'directory', # noqa: E501
+ 'template_type_id': 'templateTypeId', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'accounts': 'accounts', # noqa: E501
+ 'benchmarks': 'benchmarks', # noqa: E501
+ 'columns': 'columns', # noqa: E501
+ 'dates': 'dates', # noqa: E501
+ 'groups': 'groups', # noqa: E501
+ 'currencyisocode': 'currencyisocode', # noqa: E501
+ 'componentdetail': 'componentdetail', # noqa: E501
+ 'content': 'content', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, directory, template_type_id, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateParameters - a model defined in OpenAPI
+
+ Args:
+ directory (str): The directory to create an unlinked PA template
+ template_type_id (str): Template type id
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ description (str): Template description. [optional] # noqa: E501
+ accounts ([PAIdentifier]): List of accounts. [optional] # noqa: E501
+ benchmarks ([PAIdentifier]): List of benchmarks. [optional] # noqa: E501
+ columns ([PACalculationColumn]): List of columns for the PA calculation. [optional] # noqa: E501
+ dates (PADateParameters): [optional] # noqa: E501
+ groups ([PACalculationGroup]): List of groupings for the PA calculation. [optional] # noqa: E501
+ currencyisocode (str): Currency ISO code for calculation.. [optional] # noqa: E501
+ componentdetail (str): PA storage type. It can be GROUPS or TOTALS or SECURITIES.. [optional] # noqa: E501
+ content (TemplateContentTypes): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.directory = directory
+ self.template_type_id = template_type_id
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_parameters_root.py
new file mode 100644
index 00000000..17ce3a1e
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_parameters_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.unlinked_pa_template_parameters import UnlinkedPATemplateParameters
+ globals()['UnlinkedPATemplateParameters'] = UnlinkedPATemplateParameters
+
+
+class UnlinkedPATemplateParametersRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': (UnlinkedPATemplateParameters,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateParametersRoot - a model defined in OpenAPI
+
+ Args:
+ data (UnlinkedPATemplateParameters):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_root.py
new file mode 100644
index 00000000..ac8e1188
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.unlinked_pa_template import UnlinkedPATemplate
+ globals()['UnlinkedPATemplate'] = UnlinkedPATemplate
+
+
+class UnlinkedPATemplateRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': (UnlinkedPATemplate,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateRoot - a model defined in OpenAPI
+
+ Args:
+ data (UnlinkedPATemplate):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_summary.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_summary.py
new file mode 100644
index 00000000..c01d04d0
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_summary.py
@@ -0,0 +1,173 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+
+class UnlinkedPATemplateSummary(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'description': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'category': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'description': 'description', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'category': 'category', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateSummary - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ description (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ category (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_summary_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_summary_root.py
new file mode 100644
index 00000000..4c791717
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_summary_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.unlinked_pa_template_summary import UnlinkedPATemplateSummary
+ globals()['UnlinkedPATemplateSummary'] = UnlinkedPATemplateSummary
+
+
+class UnlinkedPATemplateSummaryRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': ({str: (UnlinkedPATemplateSummary,)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateSummaryRoot - a model defined in OpenAPI
+
+ Args:
+ data ({str: (UnlinkedPATemplateSummary,)}):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_update_parameters.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_update_parameters.py
new file mode 100644
index 00000000..50ad2819
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_update_parameters.py
@@ -0,0 +1,204 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.pa_calculation_column import PACalculationColumn
+ from fds.analyticsapi.engines.model.pa_calculation_group import PACalculationGroup
+ from fds.analyticsapi.engines.model.pa_date_parameters import PADateParameters
+ from fds.analyticsapi.engines.model.pa_identifier import PAIdentifier
+ from fds.analyticsapi.engines.model.template_content_types import TemplateContentTypes
+ globals()['PACalculationColumn'] = PACalculationColumn
+ globals()['PACalculationGroup'] = PACalculationGroup
+ globals()['PADateParameters'] = PADateParameters
+ globals()['PAIdentifier'] = PAIdentifier
+ globals()['TemplateContentTypes'] = TemplateContentTypes
+
+
+class UnlinkedPATemplateUpdateParameters(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'description': (str,), # noqa: E501
+ 'accounts': ([PAIdentifier],), # noqa: E501
+ 'benchmarks': ([PAIdentifier],), # noqa: E501
+ 'columns': ([PACalculationColumn],), # noqa: E501
+ 'dates': (PADateParameters,), # noqa: E501
+ 'groups': ([PACalculationGroup],), # noqa: E501
+ 'currencyisocode': (str,), # noqa: E501
+ 'componentdetail': (str,), # noqa: E501
+ 'content': (TemplateContentTypes,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'description': 'description', # noqa: E501
+ 'accounts': 'accounts', # noqa: E501
+ 'benchmarks': 'benchmarks', # noqa: E501
+ 'columns': 'columns', # noqa: E501
+ 'dates': 'dates', # noqa: E501
+ 'groups': 'groups', # noqa: E501
+ 'currencyisocode': 'currencyisocode', # noqa: E501
+ 'componentdetail': 'componentdetail', # noqa: E501
+ 'content': 'content', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateUpdateParameters - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ description (str): Template description. [optional] # noqa: E501
+ accounts ([PAIdentifier]): List of accounts. [optional] # noqa: E501
+ benchmarks ([PAIdentifier]): List of benchmarks. [optional] # noqa: E501
+ columns ([PACalculationColumn]): List of columns for the PA calculation. [optional] # noqa: E501
+ dates (PADateParameters): [optional] # noqa: E501
+ groups ([PACalculationGroup]): List of groupings for the PA calculation. [optional] # noqa: E501
+ currencyisocode (str): Currency ISO code for calculation.. [optional] # noqa: E501
+ componentdetail (str): PA storage type. It can be GROUPS or TOTALS or SECURITIES.. [optional] # noqa: E501
+ content (TemplateContentTypes): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_update_parameters_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_update_parameters_root.py
new file mode 100644
index 00000000..016364c2
--- /dev/null
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/unlinked_pa_template_update_parameters_root.py
@@ -0,0 +1,178 @@
+"""
+ Engines API
+
+ Allow clients to fetch Analytics through APIs. # noqa: E501
+
+ The version of the OpenAPI document: v3:[pa,spar,vault,pub,quant,fi,axp,afi,npo,bpm,fpo,others],v1:[fiab]
+ Contact: analytics.api.support@factset.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fds.analyticsapi.engines.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+)
+
+def lazy_import():
+ from fds.analyticsapi.engines.model.unlinked_pa_template_update_parameters import UnlinkedPATemplateUpdateParameters
+ globals()['UnlinkedPATemplateUpdateParameters'] = UnlinkedPATemplateUpdateParameters
+
+
+class UnlinkedPATemplateUpdateParametersRoot(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ additional_properties_type = None
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'data': (UnlinkedPATemplateUpdateParameters,), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ _composed_schemas = {}
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, data, *args, **kwargs): # noqa: E501
+ """UnlinkedPATemplateUpdateParametersRoot - a model defined in OpenAPI
+
+ Args:
+ data (UnlinkedPATemplateUpdateParameters):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/vault_component.py b/auto-generated-sdk/fds/analyticsapi/engines/model/vault_component.py
index 3363932a..5e187073 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/vault_component.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/vault_component.py
@@ -88,6 +88,7 @@ def openapi_types():
'snapshot': (bool,), # noqa: E501
'name': (str,), # noqa: E501
'category': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
}
@cached_property
@@ -104,6 +105,7 @@ def discriminator():
'snapshot': 'snapshot', # noqa: E501
'name': 'name', # noqa: E501
'category': 'category', # noqa: E501
+ 'type': 'type', # noqa: E501
}
_composed_schemas = {}
@@ -160,6 +162,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
snapshot (bool): Snapshot. [optional] # noqa: E501
name (str): Component name.. [optional] # noqa: E501
category (str): Component category.. [optional] # noqa: E501
+ type (str): Component type.. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/vault_component_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/vault_component_root.py
index ba5a7982..5f3bb51a 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/vault_component_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/vault_component_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (VaultComponent,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/vault_configuration_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/vault_configuration_root.py
index e76a2502..3d8c9381 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/vault_configuration_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/vault_configuration_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': (VaultConfiguration,), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model/vault_configuration_summary_root.py b/auto-generated-sdk/fds/analyticsapi/engines/model/vault_configuration_summary_root.py
index d2320a91..159c9988 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model/vault_configuration_summary_root.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model/vault_configuration_summary_root.py
@@ -79,7 +79,7 @@ def openapi_types():
lazy_import()
return {
'data': ({str: (VaultConfigurationSummary,)},), # noqa: E501
- 'meta': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'meta': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501
}
@cached_property
@@ -141,7 +141,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- meta ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ meta (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/model_utils.py b/auto-generated-sdk/fds/analyticsapi/engines/model_utils.py
index 24f133ba..62338898 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/model_utils.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/model_utils.py
@@ -1339,6 +1339,9 @@ def is_valid_type(input_class_simple, valid_classes):
issubclass(input_class_simple, OpenApiModel) or
input_class_simple is none_type):
for valid_class in valid_classes:
+ if valid_class is object:
+ # this is to handle oneOf fields in a Model. AAPI team added this if condition to handle Quant API
+ return True
if input_class_simple is none_type and is_type_nullable(valid_class):
# Schema is oneOf/anyOf and the 'null' type is one of the allowed types.
return True
diff --git a/auto-generated-sdk/fds/analyticsapi/engines/models/__init__.py b/auto-generated-sdk/fds/analyticsapi/engines/models/__init__.py
index 38feda75..a9264562 100644
--- a/auto-generated-sdk/fds/analyticsapi/engines/models/__init__.py
+++ b/auto-generated-sdk/fds/analyticsapi/engines/models/__init__.py
@@ -69,6 +69,14 @@
from fds.analyticsapi.engines.model.frequency_root import FrequencyRoot
from fds.analyticsapi.engines.model.group import Group
from fds.analyticsapi.engines.model.group_root import GroupRoot
+from fds.analyticsapi.engines.model.linked_pa_template import LinkedPATemplate
+from fds.analyticsapi.engines.model.linked_pa_template_parameters import LinkedPATemplateParameters
+from fds.analyticsapi.engines.model.linked_pa_template_parameters_root import LinkedPATemplateParametersRoot
+from fds.analyticsapi.engines.model.linked_pa_template_root import LinkedPATemplateRoot
+from fds.analyticsapi.engines.model.linked_pa_template_summary import LinkedPATemplateSummary
+from fds.analyticsapi.engines.model.linked_pa_template_summary_root import LinkedPATemplateSummaryRoot
+from fds.analyticsapi.engines.model.linked_pa_template_update_parameters import LinkedPATemplateUpdateParameters
+from fds.analyticsapi.engines.model.linked_pa_template_update_parameters_root import LinkedPATemplateUpdateParametersRoot
from fds.analyticsapi.engines.model.npo_optimization_parameters import NPOOptimizationParameters
from fds.analyticsapi.engines.model.npo_optimization_parameters_root import NPOOptimizationParametersRoot
from fds.analyticsapi.engines.model.npo_optimizer_strategy import NPOOptimizerStrategy
@@ -88,6 +96,7 @@
from fds.analyticsapi.engines.model.pa_calculation_parameters import PACalculationParameters
from fds.analyticsapi.engines.model.pa_calculation_parameters_root import PACalculationParametersRoot
from fds.analyticsapi.engines.model.pa_component import PAComponent
+from fds.analyticsapi.engines.model.pa_component_data import PAComponentData
from fds.analyticsapi.engines.model.pa_component_root import PAComponentRoot
from fds.analyticsapi.engines.model.pa_date_parameters import PADateParameters
from fds.analyticsapi.engines.model.pa_identifier import PAIdentifier
@@ -96,23 +105,57 @@
from fds.analyticsapi.engines.model.pub_calculation_parameters_root import PubCalculationParametersRoot
from fds.analyticsapi.engines.model.pub_date_parameters import PubDateParameters
from fds.analyticsapi.engines.model.pub_identifier import PubIdentifier
+from fds.analyticsapi.engines.model.quant_all_universal_screen_parameters import QuantAllUniversalScreenParameters
from fds.analyticsapi.engines.model.quant_calculation_meta import QuantCalculationMeta
from fds.analyticsapi.engines.model.quant_calculation_parameters import QuantCalculationParameters
from fds.analyticsapi.engines.model.quant_calculation_parameters_root import QuantCalculationParametersRoot
+from fds.analyticsapi.engines.model.quant_date import QuantDate
from fds.analyticsapi.engines.model.quant_date_list import QuantDateList
+from fds.analyticsapi.engines.model.quant_date_list_obsolete import QuantDateListObsolete
from fds.analyticsapi.engines.model.quant_fds_date import QuantFdsDate
+from fds.analyticsapi.engines.model.quant_fds_date_obsolete import QuantFdsDateObsolete
+from fds.analyticsapi.engines.model.quant_formula import QuantFormula
from fds.analyticsapi.engines.model.quant_fql_expression import QuantFqlExpression
+from fds.analyticsapi.engines.model.quant_fql_expression_obsolete import QuantFqlExpressionObsolete
from fds.analyticsapi.engines.model.quant_identifier_universe import QuantIdentifierUniverse
+from fds.analyticsapi.engines.model.quant_identifier_universe_obsolete import QuantIdentifierUniverseObsolete
from fds.analyticsapi.engines.model.quant_screening_expression import QuantScreeningExpression
+from fds.analyticsapi.engines.model.quant_screening_expression_obsolete import QuantScreeningExpressionObsolete
from fds.analyticsapi.engines.model.quant_screening_expression_universe import QuantScreeningExpressionUniverse
+from fds.analyticsapi.engines.model.quant_screening_expression_universe_obsolete import QuantScreeningExpressionUniverseObsolete
from fds.analyticsapi.engines.model.quant_universal_screen_parameter import QuantUniversalScreenParameter
+from fds.analyticsapi.engines.model.quant_universal_screen_parameter_obsolete import QuantUniversalScreenParameterObsolete
from fds.analyticsapi.engines.model.quant_universal_screen_universe import QuantUniversalScreenUniverse
+from fds.analyticsapi.engines.model.quant_universal_screen_universe_obsolete import QuantUniversalScreenUniverseObsolete
+from fds.analyticsapi.engines.model.quant_universe import QuantUniverse
+from fds.analyticsapi.engines.model.return_type import ReturnType
+from fds.analyticsapi.engines.model.spar_accounts import SPARAccounts
+from fds.analyticsapi.engines.model.spar_accounts_root import SPARAccountsRoot
from fds.analyticsapi.engines.model.spar_benchmark import SPARBenchmark
from fds.analyticsapi.engines.model.spar_benchmark_root import SPARBenchmarkRoot
from fds.analyticsapi.engines.model.spar_calculation_parameters import SPARCalculationParameters
from fds.analyticsapi.engines.model.spar_calculation_parameters_root import SPARCalculationParametersRoot
from fds.analyticsapi.engines.model.spar_date_parameters import SPARDateParameters
from fds.analyticsapi.engines.model.spar_identifier import SPARIdentifier
+from fds.analyticsapi.engines.model.template_content_types import TemplateContentTypes
+from fds.analyticsapi.engines.model.templated_pa_component_parameters import TemplatedPAComponentParameters
+from fds.analyticsapi.engines.model.templated_pa_component_parameters_root import TemplatedPAComponentParametersRoot
+from fds.analyticsapi.engines.model.templated_pa_component_summary import TemplatedPAComponentSummary
+from fds.analyticsapi.engines.model.templated_pa_component_summary_root import TemplatedPAComponentSummaryRoot
+from fds.analyticsapi.engines.model.templated_pa_component_update_parameters import TemplatedPAComponentUpdateParameters
+from fds.analyticsapi.engines.model.templated_pa_component_update_parameters_root import TemplatedPAComponentUpdateParametersRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template import UnlinkedPATemplate
+from fds.analyticsapi.engines.model.unlinked_pa_template_category_and_type import UnlinkedPATemplateCategoryAndType
+from fds.analyticsapi.engines.model.unlinked_pa_template_category_and_type_details import UnlinkedPATemplateCategoryAndTypeDetails
+from fds.analyticsapi.engines.model.unlinked_pa_template_category_and_type_details_root import UnlinkedPATemplateCategoryAndTypeDetailsRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_category_and_type_root import UnlinkedPATemplateCategoryAndTypeRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_parameters import UnlinkedPATemplateParameters
+from fds.analyticsapi.engines.model.unlinked_pa_template_parameters_root import UnlinkedPATemplateParametersRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_root import UnlinkedPATemplateRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_summary import UnlinkedPATemplateSummary
+from fds.analyticsapi.engines.model.unlinked_pa_template_summary_root import UnlinkedPATemplateSummaryRoot
+from fds.analyticsapi.engines.model.unlinked_pa_template_update_parameters import UnlinkedPATemplateUpdateParameters
+from fds.analyticsapi.engines.model.unlinked_pa_template_update_parameters_root import UnlinkedPATemplateUpdateParametersRoot
from fds.analyticsapi.engines.model.vault_calculation_parameters import VaultCalculationParameters
from fds.analyticsapi.engines.model.vault_calculation_parameters_root import VaultCalculationParametersRoot
from fds.analyticsapi.engines.model.vault_component import VaultComponent
diff --git a/auto-generated-sdk/setup.py b/auto-generated-sdk/setup.py
index af9d8d80..60570422 100644
--- a/auto-generated-sdk/setup.py
+++ b/auto-generated-sdk/setup.py
@@ -14,7 +14,7 @@
from setuptools import setup, find_packages # noqa: H301
NAME = "fds.analyticsapi.engines"
-VERSION = "5.1.0"
+VERSION = "5.2.0"
# To install the library, run the following
#
# python setup.py install
diff --git a/examples/quant_engine_single_unit_feather_example_basic.py b/examples/quant_engine_single_unit_feather_example_basic.py
new file mode 100644
index 00000000..80f1ced9
--- /dev/null
+++ b/examples/quant_engine_single_unit_feather_example_basic.py
@@ -0,0 +1,124 @@
+import time
+import os
+from pathlib import Path
+import pandas as pd
+
+from fds.analyticsapi.engines import ApiException
+from fds.analyticsapi.engines.api.quant_calculations_api import QuantCalculationsApi
+from fds.analyticsapi.engines.api_client import ApiClient
+from fds.analyticsapi.engines.configuration import Configuration
+from fds.analyticsapi.engines.model.quant_calculation_parameters_root import QuantCalculationParametersRoot
+from fds.analyticsapi.engines.model.quant_calculation_parameters import QuantCalculationParameters
+from fds.analyticsapi.engines.model.quant_calculation_meta import QuantCalculationMeta
+from fds.analyticsapi.engines.model.quant_screening_expression_universe import QuantScreeningExpressionUniverse
+from fds.analyticsapi.engines.model.quant_fds_date import QuantFdsDate
+from fds.analyticsapi.engines.model.quant_screening_expression import QuantScreeningExpression
+from fds.analyticsapi.engines.model.quant_fql_expression import QuantFqlExpression
+
+from urllib3 import Retry
+
+host = "https://api.factset.com"
+username = os.environ["ANALYTICS_API_QAR_USERNAME_SERIAL"]
+password = os.environ["ANALYTICS_API_QAR_PASSWORD"]
+
+
+def main():
+ config = Configuration()
+ config.host = host
+ config.username = username
+ config.password = password
+ # add proxy and/or disable ssl verification according to your development environment
+ # config.proxy = ""
+ config.verify_ssl = False
+
+ # Setting configuration to retry api calls on http status codes of 429 and 503.
+ config.retries = Retry(total=3, status=3, status_forcelist=frozenset([429, 503]), backoff_factor=2,
+ raise_on_status=False)
+
+ api_client = ApiClient(config)
+
+ try:
+ screeningExpressionUniverse = QuantScreeningExpressionUniverse(source="ScreeningExpressionUniverse",
+ universe_expr="(ISON_DOW AND P_PRICE > 150)=1", universe_type="Equity",
+ security_expr="TICKER")
+
+ fdsDate = QuantFdsDate(source="FdsDate",
+ start_date="0", end_date="-2M", frequency="M", calendar="FIVEDAY")
+
+ screeningExpression1 = QuantScreeningExpression(source="ScreeningExpression",
+ expr="FG_GICS_SECTOR", name="Sector (scr)")
+ screeningExpression2 = QuantScreeningExpression(source="ScreeningExpression",
+ expr="P_PRICE", name="Price (scr)")
+ fqlExpression1 = QuantFqlExpression(source="FqlExpression",
+ expr="P_PRICE(#DATE,#DATE,#FREQ)", name="Price (fql)")
+ fqlExpression2 = QuantFqlExpression(source="FqlExpression",
+ expr="OS_TOP_HLDR_POS(3,#DATE,#DATE,M,,S,SEC)", name="Top 3 Pos (fql)")
+
+ quant_calculation_parameters = {"1": QuantCalculationParameters(
+ universe=screeningExpressionUniverse,
+ dates=fdsDate,
+ formulas=[screeningExpression1, screeningExpression2, fqlExpression1, fqlExpression2])
+ }
+
+ quant_calculations_meta = QuantCalculationMeta(format='Feather')
+
+ quant_calculation_parameter_root = QuantCalculationParametersRoot(
+ data=quant_calculation_parameters, meta=quant_calculations_meta)
+
+ quant_calculations_api = QuantCalculationsApi(api_client)
+
+ post_and_calculate_response = quant_calculations_api.post_and_calculate(
+ quant_calculation_parameters_root=quant_calculation_parameter_root)
+
+ if post_and_calculate_response[1] == 201:
+ output_calculation_result('data', post_and_calculate_response[0])
+ else:
+ calculation_id = post_and_calculate_response[0].data.calculationid
+ print("Calculation Id: " + calculation_id)
+
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ while status_response[1] == 202 and (status_response[0].data.status in ("Queued", "Executing")):
+ max_age = '5'
+ age_value = status_response[2].get("cache-control")
+ if age_value is not None:
+ max_age = age_value.replace("max-age=", "")
+ print('Sleeping: ' + max_age)
+ time.sleep(int(max_age))
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ for (calculation_unit_id, calculation_unit) in status_response[0].data.units.items():
+ if calculation_unit.status == "Success":
+ print("Calculation Unit Id: " +
+ calculation_unit_id + " Succeeded!!!")
+ result_response = quant_calculations_api.get_calculation_unit_result_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Data")
+ output_calculation_result(
+ 'data', result_response[0].read())
+ result_response = quant_calculations_api.get_calculation_unit_info_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Info")
+ output_calculation_result(
+ 'info', result_response[0].read())
+ else:
+ print("Calculation Unit Id:" +
+ calculation_unit_id + " Failed!!!")
+ print("Error message : " + str(calculation_unit.errors))
+
+ except ApiException as e:
+ print("Api exception Encountered")
+ print(e)
+ exit()
+
+
+def output_calculation_result(output_prefix, result):
+ filename = Path(f'{output_prefix}-Output.ftr')
+ print(f'Writing output to {filename}')
+ filename.write_bytes(result)
+ df = pd.read_feather(filename)
+ print(df)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/examples/quant_engine_single_unit_feather_example.py b/examples/quant_engine_single_unit_feather_example_fql_expr_univ_expr.py
similarity index 81%
rename from examples/quant_engine_single_unit_feather_example.py
rename to examples/quant_engine_single_unit_feather_example_fql_expr_univ_expr.py
index c1f6a225..155f58ce 100644
--- a/examples/quant_engine_single_unit_feather_example.py
+++ b/examples/quant_engine_single_unit_feather_example_fql_expr_univ_expr.py
@@ -12,7 +12,6 @@
from fds.analyticsapi.engines.model.quant_calculation_meta import QuantCalculationMeta
from fds.analyticsapi.engines.model.quant_screening_expression_universe import QuantScreeningExpressionUniverse
from fds.analyticsapi.engines.model.quant_fds_date import QuantFdsDate
-from fds.analyticsapi.engines.model.quant_screening_expression import QuantScreeningExpression
from fds.analyticsapi.engines.model.quant_fql_expression import QuantFqlExpression
from urllib3 import Retry
@@ -27,7 +26,6 @@ def main():
config.host = host
config.username = username
config.password = password
- config.discard_unknown_keys = True
# add proxy and/or disable ssl verification according to your development environment
# config.proxy = ""
config.verify_ssl = False
@@ -39,20 +37,25 @@ def main():
api_client = ApiClient(config)
try:
- screeningExpressionUniverse = QuantScreeningExpressionUniverse(
- universe_expr="ISON_DOW", universe_type="Equity", security_expr="TICKER")
- fdsDate = QuantFdsDate(
- start_date="0", end_date="-5D", frequency="D", calendar="FIVEDAY")
- screeningExpression = [QuantScreeningExpression(
- expr="P_PRICE", name="Price (SCR)")]
- fqlExpression = [QuantFqlExpression(
- expr="P_PRICE(#DATE,#DATE,#FREQ)", name="Price (FQL)")]
+ screeningExpressionUniverse = QuantScreeningExpressionUniverse(source="ScreeningExpressionUniverse",
+ universe_expr="(TICKER=\"IBM\" OR TICKER=\"MS\" OR TICKER=\"GE\")=1",
+ universe_type="Equity",
+ security_expr="TICKER")
+
+ fdsDate = QuantFdsDate(source="FdsDate",
+ start_date="20050701", end_date="20051001", frequency="M", calendar="FIVEDAY")
+
+ fqlExpression = QuantFqlExpression(source="FqlExpression",
+ expr="P_PRICE(#DATE,#DATE,#FREQ)", name="Price")
+ fqlExpression1 = QuantFqlExpression(source="FqlExpression",
+ expr="FF_EPS(,#DATE,#DATE,#FREQ)", name="Eps")
+ fqlExpression2 = QuantFqlExpression(source="FqlExpression",
+ expr="FG_GICS_SECTOR", name="Sector")
quant_calculation_parameters = {"1": QuantCalculationParameters(
- screening_expression_universe=screeningExpressionUniverse,
- fds_date=fdsDate,
- screening_expression=screeningExpression,
- fql_expression=fqlExpression)
+ universe=screeningExpressionUniverse,
+ dates=fdsDate,
+ formulas=[fqlExpression, fqlExpression1, fqlExpression2])
}
quant_calculations_meta = QuantCalculationMeta(format='Feather')
diff --git a/examples/quant_engine_single_unit_feather_example_fql_expr_univ_ids.py b/examples/quant_engine_single_unit_feather_example_fql_expr_univ_ids.py
new file mode 100644
index 00000000..ed19c839
--- /dev/null
+++ b/examples/quant_engine_single_unit_feather_example_fql_expr_univ_ids.py
@@ -0,0 +1,127 @@
+import time
+import os
+from pathlib import Path
+import pandas as pd
+
+from fds.analyticsapi.engines import ApiException
+from fds.analyticsapi.engines.api.quant_calculations_api import QuantCalculationsApi
+from fds.analyticsapi.engines.api_client import ApiClient
+from fds.analyticsapi.engines.configuration import Configuration
+from fds.analyticsapi.engines.model.quant_calculation_parameters_root import QuantCalculationParametersRoot
+from fds.analyticsapi.engines.model.quant_calculation_parameters import QuantCalculationParameters
+from fds.analyticsapi.engines.model.quant_calculation_meta import QuantCalculationMeta
+from fds.analyticsapi.engines.model.quant_screening_expression_universe import QuantScreeningExpressionUniverse
+from fds.analyticsapi.engines.model.quant_identifier_universe import QuantIdentifierUniverse
+from fds.analyticsapi.engines.model.quant_fds_date import QuantFdsDate
+from fds.analyticsapi.engines.model.quant_screening_expression import QuantScreeningExpression
+from fds.analyticsapi.engines.model.quant_fql_expression import QuantFqlExpression
+from fds.analyticsapi.engines.model.quant_all_universal_screen_parameters import QuantAllUniversalScreenParameters
+
+from urllib3 import Retry
+
+host = "https://api.factset.com"
+username = os.environ["ANALYTICS_API_QAR_USERNAME_SERIAL"]
+password = os.environ["ANALYTICS_API_QAR_PASSWORD"]
+
+
+def main():
+ config = Configuration()
+ config.host = host
+ config.username = username
+ config.password = password
+ # add proxy and/or disable ssl verification according to your development environment
+ # config.proxy = ""
+ config.verify_ssl = False
+
+ # Setting configuration to retry api calls on http status codes of 429 and 503.
+ config.retries = Retry(total=3, status=3, status_forcelist=frozenset([429, 503]), backoff_factor=2,
+ raise_on_status=False)
+
+ api_client = ApiClient(config)
+
+ try:
+ identifierUniverse = QuantIdentifierUniverse(source="IdentifierUniverse",
+ universe_type="Equity",
+ identifiers=[
+ "IBM",
+ "MS",
+ "GE"
+ ])
+ fdsDate = QuantFdsDate(source="FdsDate",
+ start_date="20050701", end_date="20051001", frequency="M", calendar="SEVENDAY")
+
+ fqlExpression = QuantFqlExpression(source="FqlExpression",
+ expr="P_PRICE(#DATE,#DATE,#FREQ)", name="Price")
+ fqlExpression1 = QuantFqlExpression(source="FqlExpression",
+ expr="FF_EPS(,#DATE,#DATE,#FREQ)", name="Eps")
+ fqlExpression2 = QuantFqlExpression(source="FqlExpression",
+ expr="FG_GICS_SECTOR", name="Sector")
+
+ quant_calculation_parameters = {"1": QuantCalculationParameters(
+ universe=identifierUniverse,
+ dates=fdsDate,
+ formulas=[fqlExpression, fqlExpression1, fqlExpression2])
+ }
+
+ quant_calculations_meta = QuantCalculationMeta(format='Feather')
+
+ quant_calculation_parameter_root = QuantCalculationParametersRoot(
+ data=quant_calculation_parameters, meta=quant_calculations_meta)
+
+ quant_calculations_api = QuantCalculationsApi(api_client)
+
+ post_and_calculate_response = quant_calculations_api.post_and_calculate(
+ quant_calculation_parameters_root=quant_calculation_parameter_root)
+
+ if post_and_calculate_response[1] == 201:
+ output_calculation_result('data', post_and_calculate_response[0])
+ else:
+ calculation_id = post_and_calculate_response[0].data.calculationid
+ print("Calculation Id: " + calculation_id)
+
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ while status_response[1] == 202 and (status_response[0].data.status in ("Queued", "Executing")):
+ max_age = '5'
+ age_value = status_response[2].get("cache-control")
+ if age_value is not None:
+ max_age = age_value.replace("max-age=", "")
+ print('Sleeping: ' + max_age)
+ time.sleep(int(max_age))
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ for (calculation_unit_id, calculation_unit) in status_response[0].data.units.items():
+ if calculation_unit.status == "Success":
+ print("Calculation Unit Id: " +
+ calculation_unit_id + " Succeeded!!!")
+ result_response = quant_calculations_api.get_calculation_unit_result_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Data")
+ output_calculation_result(
+ 'data', result_response[0].read())
+ result_response = quant_calculations_api.get_calculation_unit_info_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Info")
+ output_calculation_result(
+ 'info', result_response[0].read())
+ else:
+ print("Calculation Unit Id:" +
+ calculation_unit_id + " Failed!!!")
+ print("Error message : " + str(calculation_unit.errors))
+
+ except ApiException as e:
+ print("Api exception Encountered")
+ print(e)
+ exit()
+
+
+def output_calculation_result(output_prefix, result):
+ filename = Path(f'{output_prefix}-Output.ftr')
+ print(f'Writing output to {filename}')
+ filename.write_bytes(result)
+ df = pd.read_feather(filename)
+ print(df)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/examples/quant_engine_single_unit_feather_example_scr_expr_univ_expr.py b/examples/quant_engine_single_unit_feather_example_scr_expr_univ_expr.py
new file mode 100644
index 00000000..d101d925
--- /dev/null
+++ b/examples/quant_engine_single_unit_feather_example_scr_expr_univ_expr.py
@@ -0,0 +1,122 @@
+import time
+import os
+from pathlib import Path
+import pandas as pd
+
+from fds.analyticsapi.engines import ApiException
+from fds.analyticsapi.engines.api.quant_calculations_api import QuantCalculationsApi
+from fds.analyticsapi.engines.api_client import ApiClient
+from fds.analyticsapi.engines.configuration import Configuration
+from fds.analyticsapi.engines.model.quant_calculation_parameters_root import QuantCalculationParametersRoot
+from fds.analyticsapi.engines.model.quant_calculation_parameters import QuantCalculationParameters
+from fds.analyticsapi.engines.model.quant_calculation_meta import QuantCalculationMeta
+from fds.analyticsapi.engines.model.quant_screening_expression_universe import QuantScreeningExpressionUniverse
+from fds.analyticsapi.engines.model.quant_fds_date import QuantFdsDate
+from fds.analyticsapi.engines.model.quant_screening_expression import QuantScreeningExpression
+
+from urllib3 import Retry
+
+host = "https://api.factset.com"
+username = os.environ["ANALYTICS_API_QAR_USERNAME_SERIAL"]
+password = os.environ["ANALYTICS_API_QAR_PASSWORD"]
+
+
+def main():
+ config = Configuration()
+ config.host = host
+ config.username = username
+ config.password = password
+ # add proxy and/or disable ssl verification according to your development environment
+ # config.proxy = ""
+ config.verify_ssl = False
+
+ # Setting configuration to retry api calls on http status codes of 429 and 503.
+ config.retries = Retry(total=3, status=3, status_forcelist=frozenset([429, 503]), backoff_factor=2,
+ raise_on_status=False)
+
+ api_client = ApiClient(config)
+
+ try:
+ screeningExpressionUniverse = QuantScreeningExpressionUniverse(source="ScreeningExpressionUniverse",
+ universe_expr="(TICKER=\"IBM\" OR TICKER=\"MS\" OR TICKER=\"GE\")=1",
+ universe_type="Equity",
+ security_expr="TICKER")
+
+ fdsDate = QuantFdsDate(source="FdsDate",
+ start_date="20050701", end_date="20051001", frequency="M", calendar="FIVEDAY")
+
+ screeningExpression = QuantScreeningExpression(source="ScreeningExpression",
+ expr="P_PRICE", name="Price")
+ screeningExpression1 = QuantScreeningExpression(source="ScreeningExpression",
+ expr="FF_EPS", name="Eps")
+ screeningExpression2 = QuantScreeningExpression(source="ScreeningExpression",
+ expr="FG_GICS_SECTOR", name="Sector")
+
+ quant_calculation_parameters = {"1": QuantCalculationParameters(
+ universe=screeningExpressionUniverse,
+ dates=fdsDate,
+ formulas=[screeningExpression, screeningExpression1, screeningExpression2])
+ }
+
+ quant_calculations_meta = QuantCalculationMeta(format='Feather')
+
+ quant_calculation_parameter_root = QuantCalculationParametersRoot(
+ data=quant_calculation_parameters, meta=quant_calculations_meta)
+
+ quant_calculations_api = QuantCalculationsApi(api_client)
+
+ post_and_calculate_response = quant_calculations_api.post_and_calculate(
+ quant_calculation_parameters_root=quant_calculation_parameter_root)
+
+ if post_and_calculate_response[1] == 201:
+ output_calculation_result('data', post_and_calculate_response[0])
+ else:
+ calculation_id = post_and_calculate_response[0].data.calculationid
+ print("Calculation Id: " + calculation_id)
+
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ while status_response[1] == 202 and (status_response[0].data.status in ("Queued", "Executing")):
+ max_age = '5'
+ age_value = status_response[2].get("cache-control")
+ if age_value is not None:
+ max_age = age_value.replace("max-age=", "")
+ print('Sleeping: ' + max_age)
+ time.sleep(int(max_age))
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ for (calculation_unit_id, calculation_unit) in status_response[0].data.units.items():
+ if calculation_unit.status == "Success":
+ print("Calculation Unit Id: " +
+ calculation_unit_id + " Succeeded!!!")
+ result_response = quant_calculations_api.get_calculation_unit_result_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Data")
+ output_calculation_result(
+ 'data', result_response[0].read())
+ result_response = quant_calculations_api.get_calculation_unit_info_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Info")
+ output_calculation_result(
+ 'info', result_response[0].read())
+ else:
+ print("Calculation Unit Id:" +
+ calculation_unit_id + " Failed!!!")
+ print("Error message : " + str(calculation_unit.errors))
+
+ except ApiException as e:
+ print("Api exception Encountered")
+ print(e)
+ exit()
+
+
+def output_calculation_result(output_prefix, result):
+ filename = Path(f'{output_prefix}-Output.ftr')
+ print(f'Writing output to {filename}')
+ filename.write_bytes(result)
+ df = pd.read_feather(filename)
+ print(df)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/examples/quant_engine_single_unit_feather_example_scr_expr_univ_ids.py b/examples/quant_engine_single_unit_feather_example_scr_expr_univ_ids.py
new file mode 100644
index 00000000..899dbddf
--- /dev/null
+++ b/examples/quant_engine_single_unit_feather_example_scr_expr_univ_ids.py
@@ -0,0 +1,125 @@
+import time
+import os
+from pathlib import Path
+import pandas as pd
+
+from fds.analyticsapi.engines import ApiException
+from fds.analyticsapi.engines.api.quant_calculations_api import QuantCalculationsApi
+from fds.analyticsapi.engines.api_client import ApiClient
+from fds.analyticsapi.engines.configuration import Configuration
+from fds.analyticsapi.engines.model.quant_calculation_parameters_root import QuantCalculationParametersRoot
+from fds.analyticsapi.engines.model.quant_calculation_parameters import QuantCalculationParameters
+from fds.analyticsapi.engines.model.quant_calculation_meta import QuantCalculationMeta
+from fds.analyticsapi.engines.model.quant_identifier_universe import QuantIdentifierUniverse
+from fds.analyticsapi.engines.model.quant_fds_date import QuantFdsDate
+from fds.analyticsapi.engines.model.quant_screening_expression import QuantScreeningExpression
+
+from urllib3 import Retry
+
+host = "https://api.factset.com"
+username = os.environ["ANALYTICS_API_QAR_USERNAME_SERIAL"]
+password = os.environ["ANALYTICS_API_QAR_PASSWORD"]
+
+
+def main():
+ config = Configuration()
+ config.host = host
+ config.username = username
+ config.password = password
+ # add proxy and/or disable ssl verification according to your development environment
+ # config.proxy = ""
+ config.verify_ssl = False
+
+ # Setting configuration to retry api calls on http status codes of 429 and 503.
+ config.retries = Retry(total=3, status=3, status_forcelist=frozenset([429, 503]), backoff_factor=2,
+ raise_on_status=False)
+
+ api_client = ApiClient(config)
+
+ try:
+ identifierUniverse = QuantIdentifierUniverse(source="IdentifierUniverse",
+ universe_type="Equity",
+ identifiers=[
+ "IBM",
+ "MS",
+ "GE"
+ ])
+
+ fdsDate = QuantFdsDate(source="FdsDate",
+ start_date="20050701", end_date="20051001", frequency="M", calendar="FIVEDAY")
+
+ screeningExpression = QuantScreeningExpression(source="ScreeningExpression",
+ expr="P_PRICE", name="Price")
+ screeningExpression1 = QuantScreeningExpression(source="ScreeningExpression",
+ expr="FF_EPS", name="Eps")
+ screeningExpression2 = QuantScreeningExpression(source="ScreeningExpression",
+ expr="FG_GICS_SECTOR", name="Sector")
+
+ quant_calculation_parameters = {"1": QuantCalculationParameters(
+ universe=identifierUniverse,
+ dates=fdsDate,
+ formulas=[screeningExpression, screeningExpression1, screeningExpression2])
+ }
+
+ quant_calculations_meta = QuantCalculationMeta(format='Feather')
+
+ quant_calculation_parameter_root = QuantCalculationParametersRoot(
+ data=quant_calculation_parameters, meta=quant_calculations_meta)
+
+ quant_calculations_api = QuantCalculationsApi(api_client)
+
+ post_and_calculate_response = quant_calculations_api.post_and_calculate(
+ quant_calculation_parameters_root=quant_calculation_parameter_root)
+
+ if post_and_calculate_response[1] == 201:
+ output_calculation_result('data', post_and_calculate_response[0])
+ else:
+ calculation_id = post_and_calculate_response[0].data.calculationid
+ print("Calculation Id: " + calculation_id)
+
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ while status_response[1] == 202 and (status_response[0].data.status in ("Queued", "Executing")):
+ max_age = '5'
+ age_value = status_response[2].get("cache-control")
+ if age_value is not None:
+ max_age = age_value.replace("max-age=", "")
+ print('Sleeping: ' + max_age)
+ time.sleep(int(max_age))
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ for (calculation_unit_id, calculation_unit) in status_response[0].data.units.items():
+ if calculation_unit.status == "Success":
+ print("Calculation Unit Id: " +
+ calculation_unit_id + " Succeeded!!!")
+ result_response = quant_calculations_api.get_calculation_unit_result_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Data")
+ output_calculation_result(
+ 'data', result_response[0].read())
+ result_response = quant_calculations_api.get_calculation_unit_info_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Info")
+ output_calculation_result(
+ 'info', result_response[0].read())
+ else:
+ print("Calculation Unit Id:" +
+ calculation_unit_id + " Failed!!!")
+ print("Error message : " + str(calculation_unit.errors))
+
+ except ApiException as e:
+ print("Api exception Encountered")
+ print(e)
+ exit()
+
+
+def output_calculation_result(output_prefix, result):
+ filename = Path(f'{output_prefix}-Output.ftr')
+ print(f'Writing output to {filename}')
+ filename.write_bytes(result)
+ df = pd.read_feather(filename)
+ print(df)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/examples/quant_engine_single_unit_feather_example_usc_params_basic.py b/examples/quant_engine_single_unit_feather_example_usc_params_basic.py
new file mode 100644
index 00000000..dfdf055c
--- /dev/null
+++ b/examples/quant_engine_single_unit_feather_example_usc_params_basic.py
@@ -0,0 +1,120 @@
+import time
+import os
+from pathlib import Path
+import pandas as pd
+
+from fds.analyticsapi.engines import ApiException
+from fds.analyticsapi.engines.api.quant_calculations_api import QuantCalculationsApi
+from fds.analyticsapi.engines.api_client import ApiClient
+from fds.analyticsapi.engines.configuration import Configuration
+from fds.analyticsapi.engines.model.quant_calculation_parameters_root import QuantCalculationParametersRoot
+from fds.analyticsapi.engines.model.quant_calculation_parameters import QuantCalculationParameters
+from fds.analyticsapi.engines.model.quant_calculation_meta import QuantCalculationMeta
+from fds.analyticsapi.engines.model.quant_universal_screen_universe import QuantUniversalScreenUniverse
+from fds.analyticsapi.engines.model.quant_fds_date import QuantFdsDate
+from fds.analyticsapi.engines.model.quant_universal_screen_parameter import QuantUniversalScreenParameter
+
+from urllib3 import Retry
+
+host = "https://api.factset.com"
+username = os.environ["ANALYTICS_API_QAR_USERNAME_SERIAL"]
+password = os.environ["ANALYTICS_API_QAR_PASSWORD"]
+
+
+def main():
+ config = Configuration()
+ config.host = host
+ config.username = username
+ config.password = password
+ # add proxy and/or disable ssl verification according to your development environment
+ # config.proxy = ""
+ config.verify_ssl = False
+
+ # Setting configuration to retry api calls on http status codes of 429 and 503.
+ config.retries = Retry(total=3, status=3, status_forcelist=frozenset([429, 503]), backoff_factor=2,
+ raise_on_status=False)
+
+ api_client = ApiClient(config)
+
+ try:
+ universalScreenUniverse = QuantUniversalScreenUniverse(source="UniversalScreenUniverse",
+ screen="Client:/Aapi/Quant/Basic_Screen")
+
+ fdsDate = QuantFdsDate(source="FdsDate",
+ start_date="20050701", end_date="20050701", frequency="D", calendar="FIVEDAY")
+
+ universalScreenParameter = QuantUniversalScreenParameter(source="UniversalScreenParameter",
+ reference_name="AVAIL(PROPER_NAME, CN)", name="company_name")
+ universalScreenParameter1 = QuantUniversalScreenParameter(source="UniversalScreenParameter",
+ reference_name="AVAIL(FS_TICKER_REGION, CUSIP)", name="ticker")
+ universalScreenParameter2 = QuantUniversalScreenParameter(source="UniversalScreenParameter",
+ reference_name="P_PRICE(#DATE,#DATE,#FREQ)", name="Price (FQL)")
+
+ quant_calculation_parameters = {"1": QuantCalculationParameters(
+ universe=universalScreenUniverse,
+ dates=fdsDate,
+ formulas=[universalScreenParameter, universalScreenParameter1, universalScreenParameter2])
+ }
+
+ quant_calculations_meta = QuantCalculationMeta(format='Feather')
+
+ quant_calculation_parameter_root = QuantCalculationParametersRoot(
+ data=quant_calculation_parameters, meta=quant_calculations_meta)
+
+ quant_calculations_api = QuantCalculationsApi(api_client)
+
+ post_and_calculate_response = quant_calculations_api.post_and_calculate(
+ quant_calculation_parameters_root=quant_calculation_parameter_root)
+
+ if post_and_calculate_response[1] == 201:
+ output_calculation_result('data', post_and_calculate_response[0])
+ else:
+ calculation_id = post_and_calculate_response[0].data.calculationid
+ print("Calculation Id: " + calculation_id)
+
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ while status_response[1] == 202 and (status_response[0].data.status in ("Queued", "Executing")):
+ max_age = '5'
+ age_value = status_response[2].get("cache-control")
+ if age_value is not None:
+ max_age = age_value.replace("max-age=", "")
+ print('Sleeping: ' + max_age)
+ time.sleep(int(max_age))
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ for (calculation_unit_id, calculation_unit) in status_response[0].data.units.items():
+ if calculation_unit.status == "Success":
+ print("Calculation Unit Id: " +
+ calculation_unit_id + " Succeeded!!!")
+ result_response = quant_calculations_api.get_calculation_unit_result_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Data")
+ output_calculation_result(
+ 'data', result_response[0].read())
+ result_response = quant_calculations_api.get_calculation_unit_info_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Info")
+ output_calculation_result(
+ 'info', result_response[0].read())
+ else:
+ print("Calculation Unit Id:" +
+ calculation_unit_id + " Failed!!!")
+ print("Error message : " + str(calculation_unit.errors))
+
+ except ApiException as e:
+ print("Api exception Encountered")
+ print(e)
+ exit()
+
+
+def output_calculation_result(output_prefix, result):
+ filename = Path(f'{output_prefix}-Output.ftr')
+ print(f'Writing output to {filename}')
+ filename.write_bytes(result)
+ df = pd.read_feather(filename)
+ print(df)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/examples/quant_engine_single_unit_example.py b/examples/quant_engine_single_unit_stach_example.py
similarity index 100%
rename from examples/quant_engine_single_unit_example.py
rename to examples/quant_engine_single_unit_stach_example.py
diff --git a/examples/quant_engines_single_unit_feather_example_usc_params_all.py b/examples/quant_engines_single_unit_feather_example_usc_params_all.py
new file mode 100644
index 00000000..7ba5a814
--- /dev/null
+++ b/examples/quant_engines_single_unit_feather_example_usc_params_all.py
@@ -0,0 +1,115 @@
+import time
+import os
+from pathlib import Path
+import pandas as pd
+
+from fds.analyticsapi.engines import ApiException
+from fds.analyticsapi.engines.api.quant_calculations_api import QuantCalculationsApi
+from fds.analyticsapi.engines.api_client import ApiClient
+from fds.analyticsapi.engines.configuration import Configuration
+from fds.analyticsapi.engines.model.quant_calculation_parameters_root import QuantCalculationParametersRoot
+from fds.analyticsapi.engines.model.quant_calculation_parameters import QuantCalculationParameters
+from fds.analyticsapi.engines.model.quant_calculation_meta import QuantCalculationMeta
+from fds.analyticsapi.engines.model.quant_universal_screen_universe import QuantUniversalScreenUniverse
+from fds.analyticsapi.engines.model.quant_fds_date import QuantFdsDate
+from fds.analyticsapi.engines.model.quant_all_universal_screen_parameters import QuantAllUniversalScreenParameters
+
+from urllib3 import Retry
+
+host = "https://api.factset.com"
+username = os.environ["ANALYTICS_API_QAR_USERNAME_SERIAL"]
+password = os.environ["ANALYTICS_API_QAR_PASSWORD"]
+
+
+def main():
+ config = Configuration()
+ config.host = host
+ config.username = username
+ config.password = password
+ # add proxy and/or disable ssl verification according to your development environment
+ # config.proxy = ""
+ config.verify_ssl = False
+
+ # Setting configuration to retry api calls on http status codes of 429 and 503.
+ config.retries = Retry(total=3, status=3, status_forcelist=frozenset([429, 503]), backoff_factor=2,
+ raise_on_status=False)
+
+ api_client = ApiClient(config)
+
+ try:
+ universalScreenUniverse = QuantUniversalScreenUniverse(source="UniversalScreenUniverse",
+ screen="Client:/Aapi/Quant/Basic_Screen")
+
+ fdsDate = QuantFdsDate(source="FdsDate",
+ start_date="20050701", end_date="20050701", frequency="D", calendar="FIVEDAY")
+
+ allUniversalScreenParameter = QuantAllUniversalScreenParameters(source="AllUniversalScreenParameters")
+
+ quant_calculation_parameters = {"1": QuantCalculationParameters(
+ universe=universalScreenUniverse,
+ dates=fdsDate,
+ formulas=[allUniversalScreenParameter])
+ }
+
+ quant_calculations_meta = QuantCalculationMeta(format='Feather')
+
+ quant_calculation_parameter_root = QuantCalculationParametersRoot(
+ data=quant_calculation_parameters, meta=quant_calculations_meta)
+
+ quant_calculations_api = QuantCalculationsApi(api_client)
+
+ post_and_calculate_response = quant_calculations_api.post_and_calculate(
+ quant_calculation_parameters_root=quant_calculation_parameter_root)
+
+ if post_and_calculate_response[1] == 201:
+ output_calculation_result('data', post_and_calculate_response[0])
+ else:
+ calculation_id = post_and_calculate_response[0].data.calculationid
+ print("Calculation Id: " + calculation_id)
+
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ while status_response[1] == 202 and (status_response[0].data.status in ("Queued", "Executing")):
+ max_age = '5'
+ age_value = status_response[2].get("cache-control")
+ if age_value is not None:
+ max_age = age_value.replace("max-age=", "")
+ print('Sleeping: ' + max_age)
+ time.sleep(int(max_age))
+ status_response = quant_calculations_api.get_calculation_status_by_id(id=calculation_id)
+
+ for (calculation_unit_id, calculation_unit) in status_response[0].data.units.items():
+ if calculation_unit.status == "Success":
+ print("Calculation Unit Id: " +
+ calculation_unit_id + " Succeeded!!!")
+ result_response = quant_calculations_api.get_calculation_unit_result_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Data")
+ output_calculation_result(
+ 'data', result_response[0].read())
+ result_response = quant_calculations_api.get_calculation_unit_info_by_id(id=calculation_id,
+ unit_id=calculation_unit_id)
+ print("Calculation Info")
+ output_calculation_result(
+ 'info', result_response[0].read())
+ else:
+ print("Calculation Unit Id:" +
+ calculation_unit_id + " Failed!!!")
+ print("Error message : " + str(calculation_unit.errors))
+
+ except ApiException as e:
+ print("Api exception Encountered")
+ print(e)
+ exit()
+
+
+def output_calculation_result(output_prefix, result):
+ filename = Path(f'{output_prefix}-Output.ftr')
+ print(f'Writing output to {filename}')
+ filename.write_bytes(result)
+ df = pd.read_feather(filename)
+ print(df)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/examples/requirements.txt b/examples/requirements.txt
index d1e7688a..cd00bfad 100644
--- a/examples/requirements.txt
+++ b/examples/requirements.txt
@@ -2,7 +2,6 @@ astroid==2.5.6
autopep8==1.5.7
certifi==2021.5.30
colorama==0.4.4
-fds.analyticsapi.engines<6.0.0
fds.protobuf.stach.extensions<2.0.0
fds.protobuf.stach.v2<2.0.0
isort==5.8.0
diff --git a/tests/requirements.txt b/tests/requirements.txt
index 8d64c1a9..cc51d4ff 100644
--- a/tests/requirements.txt
+++ b/tests/requirements.txt
@@ -2,7 +2,6 @@ astroid==2.6.2
atomicwrites==1.4.0
attrs==21.2.0
colorama==0.4.4
-fds.analyticsapi.engines<6.0.0
fds.protobuf.stach<2.0.0
fds.protobuf.stach.extensions<2.0.0
fds.protobuf.stach.v2<2.0.0