From adbbe786b177920dbec87cc6607eb6b98ffcb3c7 Mon Sep 17 00:00:00 2001 From: jher Date: Mon, 7 Sep 2026 09:17:08 +0200 Subject: [PATCH] feat: support CAs in pySDK JIRA: CQ-2799 risk: low --- gooddata-api-client/.openapi-generator/FILES | 56 +- gooddata-api-client/README.md | 47 +- gooddata-api-client/docs/ActionsApi.md | 2 +- .../AfmObjectIdentifierLabelIdentifier.md | 2 +- gooddata-api-client/docs/AnalyticsModelApi.md | 36 + gooddata-api-client/docs/ComputationApi.md | 2 +- .../docs/ComputedAttributeControllerApi.md | 690 +++ .../docs/ComputedAttributesApi.md | 690 +++ .../docs/DeclarativeAnalyticsLayer.md | 1 + .../docs/DeclarativeComputedAttribute.md | 30 + .../DeclarativeComputedAttributeContent.md | 15 + gooddata-api-client/docs/EntitiesApi.md | 718 ++- .../JsonApiAnalyticalDashboardOutIncludes.md | 2 +- .../docs/JsonApiComputedAttributeIn.md | 15 + .../JsonApiComputedAttributeInAttributes.md | 22 + ...piComputedAttributeInAttributesContent.md} | 2 +- .../JsonApiComputedAttributeInDocument.md | 12 + .../docs/JsonApiComputedAttributeLinkage.md | 14 + .../docs/JsonApiComputedAttributeOut.md | 17 + .../JsonApiComputedAttributeOutAttributes.md | 27 + .../JsonApiComputedAttributeOutDocument.md | 14 + ...=> JsonApiComputedAttributeOutIncludes.md} | 2 +- .../docs/JsonApiComputedAttributeOutList.md | 16 + ...onApiComputedAttributeOutRelationships.md} | 5 +- ...ibuteOutRelationshipsComputedAttributes.md | 12 + ...ComputedAttributeOutRelationshipsFacts.md} | 2 +- .../JsonApiComputedAttributeOutWithLinks.md | 17 + .../docs/JsonApiComputedAttributePatch.md | 15 + ...JsonApiComputedAttributePatchAttributes.md | 22 + .../JsonApiComputedAttributePatchDocument.md | 12 + .../JsonApiComputedAttributePostOptionalId.md | 15 + ...ComputedAttributePostOptionalIdDocument.md | 12 + .../JsonApiComputedAttributeToManyLinkage.md | 12 + .../docs/JsonApiDatasetOutRelationships.md | 2 +- .../JsonApiExportDefinitionOutIncludes.md | 2 +- ...onApiKnowledgeRecommendationOutIncludes.md | 2 +- .../docs/JsonApiMetricInAttributes.md | 2 +- gooddata-api-client/docs/JsonApiMetricOut.md | 2 +- .../docs/JsonApiMetricOutAttributes.md | 2 +- .../docs/JsonApiMetricOutDocument.md | 2 +- .../docs/JsonApiMetricOutList.md | 2 +- .../docs/JsonApiMetricOutWithLinks.md | 2 +- .../docs/JsonApiMetricPatchAttributes.md | 2 +- .../JsonApiUserDataFilterOutRelationships.md | 3 +- .../docs/JsonApiVisualizationObjectOut.md | 2 +- .../JsonApiVisualizationObjectOutDocument.md | 2 +- .../docs/JsonApiVisualizationObjectOutList.md | 2 +- .../JsonApiVisualizationObjectOutWithLinks.md | 2 +- gooddata-api-client/docs/LayoutApi.md | 144 + .../docs/MetricControllerApi.md | 6 +- gooddata-api-client/docs/MetricsApi.md | 6 +- .../docs/OrganizationDeclarativeAPIsApi.md | 36 + gooddata-api-client/docs/ValidateByItem.md | 2 +- .../docs/WorkspacesDeclarativeAPIsApi.md | 72 + .../api/computed_attribute_controller_api.py | 1309 ++++++ .../api/computed_attributes_api.py | 1309 ++++++ .../gooddata_api_client/api/entities_api.py | 1284 +++++- .../gooddata_api_client/apis/__init__.py | 2 + .../afm_object_identifier_core_identifier.py | 1 + .../model/afm_object_identifier_identifier.py | 1 + .../afm_object_identifier_label_identifier.py | 11 +- .../model/afm_valid_objects_query.py | 1 + .../model/declarative_analytics_layer.py | 6 + .../model/declarative_computed_attribute.py | 409 ++ ...declarative_computed_attribute_content.py} | 6 +- .../model/dependent_entities_node.py | 1 + .../model/entity_identifier.py | 1 + .../model/identifier_ref_identifier.py | 1 + ...n_api_analytical_dashboard_out_includes.py | 10 +- .../model/json_api_computed_attribute_in.py | 298 ++ ...on_api_computed_attribute_in_attributes.py | 343 ++ ...omputed_attribute_in_attributes_content.py | 288 ++ ...json_api_computed_attribute_in_document.py | 276 ++ .../json_api_computed_attribute_linkage.py | 281 ++ .../model/json_api_computed_attribute_out.py | 310 ++ ...n_api_computed_attribute_out_attributes.py | 381 ++ ...son_api_computed_attribute_out_document.py | 290 ++ ...on_api_computed_attribute_out_includes.py} | 9 +- .../json_api_computed_attribute_out_list.py | 298 ++ ...i_computed_attribute_out_relationships.py} | 22 +- ...e_out_relationships_computed_attributes.py | 276 ++ ...uted_attribute_out_relationships_facts.py} | 6 +- ...n_api_computed_attribute_out_with_links.py | 361 ++ .../json_api_computed_attribute_patch.py | 298 ++ ...api_computed_attribute_patch_attributes.py | 337 ++ ...n_api_computed_attribute_patch_document.py | 276 ++ ...api_computed_attribute_post_optional_id.py | 296 ++ ...ted_attribute_post_optional_id_document.py | 276 ++ ..._api_computed_attribute_to_many_linkage.py | 292 ++ .../json_api_dataset_out_relationships.py | 10 +- ...json_api_export_definition_out_includes.py | 10 +- ...i_knowledge_recommendation_out_includes.py | 10 +- .../model/json_api_metric_in_attributes.py | 10 +- .../model/json_api_metric_out.py | 10 +- .../model/json_api_metric_out_attributes.py | 10 +- .../model/json_api_metric_out_document.py | 10 +- .../model/json_api_metric_out_list.py | 10 +- .../model/json_api_metric_out_with_links.py | 10 +- .../model/json_api_metric_patch_attributes.py | 10 +- .../json_api_user_data_filter_out_includes.py | 3 + ..._api_user_data_filter_out_relationships.py | 16 +- .../json_api_visualization_object_out.py | 10 +- ...n_api_visualization_object_out_document.py | 10 +- .../json_api_visualization_object_out_list.py | 10 +- ...api_visualization_object_out_with_links.py | 10 +- .../model/set_certification_request.py | 1 + .../model/validate_by_item.py | 6 +- .../gooddata_api_client/models/__init__.py | 26 +- .../gooddata-sdk/src/gooddata_sdk/__init__.py | 9 + .../catalog/workspace/content_service.py | 14 +- .../analytics_model/analytics_model.py | 53 + .../content_objects/computed_attribute.py | 132 + .../gooddata_sdk/catalog/workspace/service.py | 104 + .../src/gooddata_sdk/compute/model/base.py | 4 +- .../computed_attribute_generated_id.yaml | 190 + .../computed_attribute_life_cycle.yaml | 2092 +++++++++ .../tests/catalog/test_catalog_workspace.py | 92 + .../tests/catalog/test_upsert_outcome.py | 58 +- .../test_declarative_computed_attributes.py | 115 + .../src/tests_support/vcrpy_utils.py | 20 +- schemas/gooddata-afm-client.json | 14 +- schemas/gooddata-api-client.json | 3990 ++++++++++++----- schemas/gooddata-automation-client.json | 8 +- schemas/gooddata-export-client.json | 8 +- schemas/gooddata-metadata-client.json | 3985 +++++++++++----- 125 files changed, 20980 insertions(+), 2519 deletions(-) create mode 100644 gooddata-api-client/docs/ComputedAttributeControllerApi.md create mode 100644 gooddata-api-client/docs/ComputedAttributesApi.md create mode 100644 gooddata-api-client/docs/DeclarativeComputedAttribute.md create mode 100644 gooddata-api-client/docs/DeclarativeComputedAttributeContent.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeIn.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeInAttributes.md rename gooddata-api-client/docs/{JsonApiMetricInAttributesContent.md => JsonApiComputedAttributeInAttributesContent.md} (96%) create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeInDocument.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeLinkage.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeOut.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeOutAttributes.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeOutDocument.md rename gooddata-api-client/docs/{JsonApiMetricOutIncludes.md => JsonApiComputedAttributeOutIncludes.md} (96%) create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeOutList.md rename gooddata-api-client/docs/{JsonApiMetricOutRelationships.md => JsonApiComputedAttributeOutRelationships.md} (81%) create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeOutRelationshipsComputedAttributes.md rename gooddata-api-client/docs/{JsonApiDatasetOutRelationshipsFacts.md => JsonApiComputedAttributeOutRelationshipsFacts.md} (91%) create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeOutWithLinks.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributePatch.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributePatchAttributes.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributePatchDocument.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributePostOptionalId.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributePostOptionalIdDocument.md create mode 100644 gooddata-api-client/docs/JsonApiComputedAttributeToManyLinkage.md create mode 100644 gooddata-api-client/gooddata_api_client/api/computed_attribute_controller_api.py create mode 100644 gooddata-api-client/gooddata_api_client/api/computed_attributes_api.py create mode 100644 gooddata-api-client/gooddata_api_client/model/declarative_computed_attribute.py rename gooddata-api-client/gooddata_api_client/model/{json_api_metric_in_attributes_content.py => declarative_computed_attribute_content.py} (98%) create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_attributes.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_attributes_content.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_document.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_linkage.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_attributes.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_document.py rename gooddata-api-client/gooddata_api_client/model/{json_api_metric_out_includes.py => json_api_computed_attribute_out_includes.py} (97%) create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_list.py rename gooddata-api-client/gooddata_api_client/model/{json_api_metric_out_relationships.py => json_api_computed_attribute_out_relationships.py} (91%) create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_relationships_computed_attributes.py rename gooddata-api-client/gooddata_api_client/model/{json_api_dataset_out_relationships_facts.py => json_api_computed_attribute_out_relationships_facts.py} (98%) create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_with_links.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch_attributes.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch_document.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_post_optional_id.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_post_optional_id_document.py create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_to_many_linkage.py create mode 100644 packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/entity_model/content_objects/computed_attribute.py create mode 100644 packages/gooddata-sdk/tests/catalog/fixtures/workspaces/computed_attribute_generated_id.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/fixtures/workspaces/computed_attribute_life_cycle.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/unit_tests/test_declarative_computed_attributes.py diff --git a/gooddata-api-client/.openapi-generator/FILES b/gooddata-api-client/.openapi-generator/FILES index b9d58d6ca..c30cb689d 100644 --- a/gooddata-api-client/.openapi-generator/FILES +++ b/gooddata-api-client/.openapi-generator/FILES @@ -177,6 +177,8 @@ docs/ComparisonWrapper.md docs/CompoundMeasureValueFilter.md docs/CompoundMeasureValueFilterCompoundMeasureValueFilter.md docs/ComputationApi.md +docs/ComputedAttributeControllerApi.md +docs/ComputedAttributesApi.md docs/ContentSlideTemplate.md docs/ConvertGeoFileRequest.md docs/ConvertGeoFileResponse.md @@ -284,6 +286,8 @@ docs/DeclarativeAutomation.md docs/DeclarativeCalendar.md docs/DeclarativeColorPalette.md docs/DeclarativeColumn.md +docs/DeclarativeComputedAttribute.md +docs/DeclarativeComputedAttributeContent.md docs/DeclarativeCspDirective.md docs/DeclarativeCustomApplicationSetting.md docs/DeclarativeCustomGeoCollection.md @@ -634,6 +638,26 @@ docs/JsonApiColorPaletteOutWithLinks.md docs/JsonApiColorPalettePatch.md docs/JsonApiColorPalettePatchAttributes.md docs/JsonApiColorPalettePatchDocument.md +docs/JsonApiComputedAttributeIn.md +docs/JsonApiComputedAttributeInAttributes.md +docs/JsonApiComputedAttributeInAttributesContent.md +docs/JsonApiComputedAttributeInDocument.md +docs/JsonApiComputedAttributeLinkage.md +docs/JsonApiComputedAttributeOut.md +docs/JsonApiComputedAttributeOutAttributes.md +docs/JsonApiComputedAttributeOutDocument.md +docs/JsonApiComputedAttributeOutIncludes.md +docs/JsonApiComputedAttributeOutList.md +docs/JsonApiComputedAttributeOutRelationships.md +docs/JsonApiComputedAttributeOutRelationshipsComputedAttributes.md +docs/JsonApiComputedAttributeOutRelationshipsFacts.md +docs/JsonApiComputedAttributeOutWithLinks.md +docs/JsonApiComputedAttributePatch.md +docs/JsonApiComputedAttributePatchAttributes.md +docs/JsonApiComputedAttributePatchDocument.md +docs/JsonApiComputedAttributePostOptionalId.md +docs/JsonApiComputedAttributePostOptionalIdDocument.md +docs/JsonApiComputedAttributeToManyLinkage.md docs/JsonApiCookieSecurityConfigurationIn.md docs/JsonApiCookieSecurityConfigurationInAttributes.md docs/JsonApiCookieSecurityConfigurationInDocument.md @@ -728,7 +752,6 @@ docs/JsonApiDatasetOutIncludes.md docs/JsonApiDatasetOutList.md docs/JsonApiDatasetOutRelationships.md docs/JsonApiDatasetOutRelationshipsAggregatedFacts.md -docs/JsonApiDatasetOutRelationshipsFacts.md docs/JsonApiDatasetOutRelationshipsWorkspaceDataFilters.md docs/JsonApiDatasetOutWithLinks.md docs/JsonApiDatasetPatch.md @@ -922,15 +945,12 @@ docs/JsonApiMemoryItemPostOptionalId.md docs/JsonApiMemoryItemPostOptionalIdDocument.md docs/JsonApiMetricIn.md docs/JsonApiMetricInAttributes.md -docs/JsonApiMetricInAttributesContent.md docs/JsonApiMetricInDocument.md docs/JsonApiMetricLinkage.md docs/JsonApiMetricOut.md docs/JsonApiMetricOutAttributes.md docs/JsonApiMetricOutDocument.md -docs/JsonApiMetricOutIncludes.md docs/JsonApiMetricOutList.md -docs/JsonApiMetricOutRelationships.md docs/JsonApiMetricOutWithLinks.md docs/JsonApiMetricPatch.md docs/JsonApiMetricPatchAttributes.md @@ -1574,6 +1594,8 @@ gooddata_api_client/api/cache_usage_api.py gooddata_api_client/api/certification_api.py gooddata_api_client/api/color_palette_controller_api.py gooddata_api_client/api/computation_api.py +gooddata_api_client/api/computed_attribute_controller_api.py +gooddata_api_client/api/computed_attributes_api.py gooddata_api_client/api/cookie_security_configuration_api.py gooddata_api_client/api/cookie_security_configuration_controller_api.py gooddata_api_client/api/csp_directive_controller_api.py @@ -1923,6 +1945,8 @@ gooddata_api_client/model/declarative_automation.py gooddata_api_client/model/declarative_calendar.py gooddata_api_client/model/declarative_color_palette.py gooddata_api_client/model/declarative_column.py +gooddata_api_client/model/declarative_computed_attribute.py +gooddata_api_client/model/declarative_computed_attribute_content.py gooddata_api_client/model/declarative_csp_directive.py gooddata_api_client/model/declarative_custom_application_setting.py gooddata_api_client/model/declarative_custom_geo_collection.py @@ -2248,6 +2272,26 @@ gooddata_api_client/model/json_api_color_palette_out_with_links.py gooddata_api_client/model/json_api_color_palette_patch.py gooddata_api_client/model/json_api_color_palette_patch_attributes.py gooddata_api_client/model/json_api_color_palette_patch_document.py +gooddata_api_client/model/json_api_computed_attribute_in.py +gooddata_api_client/model/json_api_computed_attribute_in_attributes.py +gooddata_api_client/model/json_api_computed_attribute_in_attributes_content.py +gooddata_api_client/model/json_api_computed_attribute_in_document.py +gooddata_api_client/model/json_api_computed_attribute_linkage.py +gooddata_api_client/model/json_api_computed_attribute_out.py +gooddata_api_client/model/json_api_computed_attribute_out_attributes.py +gooddata_api_client/model/json_api_computed_attribute_out_document.py +gooddata_api_client/model/json_api_computed_attribute_out_includes.py +gooddata_api_client/model/json_api_computed_attribute_out_list.py +gooddata_api_client/model/json_api_computed_attribute_out_relationships.py +gooddata_api_client/model/json_api_computed_attribute_out_relationships_computed_attributes.py +gooddata_api_client/model/json_api_computed_attribute_out_relationships_facts.py +gooddata_api_client/model/json_api_computed_attribute_out_with_links.py +gooddata_api_client/model/json_api_computed_attribute_patch.py +gooddata_api_client/model/json_api_computed_attribute_patch_attributes.py +gooddata_api_client/model/json_api_computed_attribute_patch_document.py +gooddata_api_client/model/json_api_computed_attribute_post_optional_id.py +gooddata_api_client/model/json_api_computed_attribute_post_optional_id_document.py +gooddata_api_client/model/json_api_computed_attribute_to_many_linkage.py gooddata_api_client/model/json_api_cookie_security_configuration_in.py gooddata_api_client/model/json_api_cookie_security_configuration_in_attributes.py gooddata_api_client/model/json_api_cookie_security_configuration_in_document.py @@ -2342,7 +2386,6 @@ gooddata_api_client/model/json_api_dataset_out_includes.py gooddata_api_client/model/json_api_dataset_out_list.py gooddata_api_client/model/json_api_dataset_out_relationships.py gooddata_api_client/model/json_api_dataset_out_relationships_aggregated_facts.py -gooddata_api_client/model/json_api_dataset_out_relationships_facts.py gooddata_api_client/model/json_api_dataset_out_relationships_workspace_data_filters.py gooddata_api_client/model/json_api_dataset_out_with_links.py gooddata_api_client/model/json_api_dataset_patch.py @@ -2536,15 +2579,12 @@ gooddata_api_client/model/json_api_memory_item_post_optional_id.py gooddata_api_client/model/json_api_memory_item_post_optional_id_document.py gooddata_api_client/model/json_api_metric_in.py gooddata_api_client/model/json_api_metric_in_attributes.py -gooddata_api_client/model/json_api_metric_in_attributes_content.py gooddata_api_client/model/json_api_metric_in_document.py gooddata_api_client/model/json_api_metric_linkage.py gooddata_api_client/model/json_api_metric_out.py gooddata_api_client/model/json_api_metric_out_attributes.py gooddata_api_client/model/json_api_metric_out_document.py -gooddata_api_client/model/json_api_metric_out_includes.py gooddata_api_client/model/json_api_metric_out_list.py -gooddata_api_client/model/json_api_metric_out_relationships.py gooddata_api_client/model/json_api_metric_out_with_links.py gooddata_api_client/model/json_api_metric_patch.py gooddata_api_client/model/json_api_metric_patch_attributes.py diff --git a/gooddata-api-client/README.md b/gooddata-api-client/README.md index 90e562690..9b2232867 100644 --- a/gooddata-api-client/README.md +++ b/gooddata-api-client/README.md @@ -290,6 +290,13 @@ Class | Method | HTTP request | Description *ComputationApi* | [**retrieve_execution_metadata**](docs/ComputationApi.md#retrieve_execution_metadata) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId}/metadata | Get a single execution result's metadata. *ComputationApi* | [**retrieve_result**](docs/ComputationApi.md#retrieve_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId} | Get a single execution result *ComputationApi* | [**retrieve_result_binary**](docs/ComputationApi.md#retrieve_result_binary) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId}/binary | (BETA) Get a single execution result in Apache Arrow File or Stream format +*ComputedAttributesApi* | [**create_entity_computed_attributes**](docs/ComputedAttributesApi.md#create_entity_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Post Computed Attributes +*ComputedAttributesApi* | [**delete_entity_computed_attributes**](docs/ComputedAttributesApi.md#delete_entity_computed_attributes) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Delete a Computed Attribute +*ComputedAttributesApi* | [**get_all_entities_computed_attributes**](docs/ComputedAttributesApi.md#get_all_entities_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Get all Computed Attributes +*ComputedAttributesApi* | [**get_entity_computed_attributes**](docs/ComputedAttributesApi.md#get_entity_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Get a Computed Attribute +*ComputedAttributesApi* | [**patch_entity_computed_attributes**](docs/ComputedAttributesApi.md#patch_entity_computed_attributes) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Patch a Computed Attribute +*ComputedAttributesApi* | [**search_entities_computed_attributes**](docs/ComputedAttributesApi.md#search_entities_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/search | The search endpoint (beta) +*ComputedAttributesApi* | [**update_entity_computed_attributes**](docs/ComputedAttributesApi.md#update_entity_computed_attributes) | **PUT** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Put a Computed Attribute *CookieSecurityConfigurationApi* | [**get_entity_cookie_security_configurations**](docs/CookieSecurityConfigurationApi.md#get_entity_cookie_security_configurations) | **GET** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Get CookieSecurityConfiguration *CookieSecurityConfigurationApi* | [**patch_entity_cookie_security_configurations**](docs/CookieSecurityConfigurationApi.md#patch_entity_cookie_security_configurations) | **PATCH** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Patch CookieSecurityConfiguration *CookieSecurityConfigurationApi* | [**update_entity_cookie_security_configurations**](docs/CookieSecurityConfigurationApi.md#update_entity_cookie_security_configurations) | **PUT** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Put CookieSecurityConfiguration @@ -852,6 +859,13 @@ Class | Method | HTTP request | Description *ColorPaletteControllerApi* | [**get_entity_color_palettes**](docs/ColorPaletteControllerApi.md#get_entity_color_palettes) | **GET** /api/v1/entities/colorPalettes/{id} | Get Color Pallette *ColorPaletteControllerApi* | [**patch_entity_color_palettes**](docs/ColorPaletteControllerApi.md#patch_entity_color_palettes) | **PATCH** /api/v1/entities/colorPalettes/{id} | Patch Color Pallette *ColorPaletteControllerApi* | [**update_entity_color_palettes**](docs/ColorPaletteControllerApi.md#update_entity_color_palettes) | **PUT** /api/v1/entities/colorPalettes/{id} | Put Color Pallette +*ComputedAttributeControllerApi* | [**create_entity_computed_attributes**](docs/ComputedAttributeControllerApi.md#create_entity_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Post Computed Attributes +*ComputedAttributeControllerApi* | [**delete_entity_computed_attributes**](docs/ComputedAttributeControllerApi.md#delete_entity_computed_attributes) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Delete a Computed Attribute +*ComputedAttributeControllerApi* | [**get_all_entities_computed_attributes**](docs/ComputedAttributeControllerApi.md#get_all_entities_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Get all Computed Attributes +*ComputedAttributeControllerApi* | [**get_entity_computed_attributes**](docs/ComputedAttributeControllerApi.md#get_entity_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Get a Computed Attribute +*ComputedAttributeControllerApi* | [**patch_entity_computed_attributes**](docs/ComputedAttributeControllerApi.md#patch_entity_computed_attributes) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Patch a Computed Attribute +*ComputedAttributeControllerApi* | [**search_entities_computed_attributes**](docs/ComputedAttributeControllerApi.md#search_entities_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/search | The search endpoint (beta) +*ComputedAttributeControllerApi* | [**update_entity_computed_attributes**](docs/ComputedAttributeControllerApi.md#update_entity_computed_attributes) | **PUT** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Put a Computed Attribute *CookieSecurityConfigurationControllerApi* | [**get_entity_cookie_security_configurations**](docs/CookieSecurityConfigurationControllerApi.md#get_entity_cookie_security_configurations) | **GET** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Get CookieSecurityConfiguration *CookieSecurityConfigurationControllerApi* | [**patch_entity_cookie_security_configurations**](docs/CookieSecurityConfigurationControllerApi.md#patch_entity_cookie_security_configurations) | **PATCH** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Patch CookieSecurityConfiguration *CookieSecurityConfigurationControllerApi* | [**update_entity_cookie_security_configurations**](docs/CookieSecurityConfigurationControllerApi.md#update_entity_cookie_security_configurations) | **PUT** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Put CookieSecurityConfiguration @@ -905,6 +919,7 @@ Class | Method | HTTP request | Description *EntitiesApi* | [**create_entity_attribute_hierarchies**](docs/EntitiesApi.md#create_entity_attribute_hierarchies) | **POST** /api/v1/entities/workspaces/{workspaceId}/attributeHierarchies | Post Attribute Hierarchies *EntitiesApi* | [**create_entity_automations**](docs/EntitiesApi.md#create_entity_automations) | **POST** /api/v1/entities/workspaces/{workspaceId}/automations | Post Automations *EntitiesApi* | [**create_entity_color_palettes**](docs/EntitiesApi.md#create_entity_color_palettes) | **POST** /api/v1/entities/colorPalettes | Post Color Pallettes +*EntitiesApi* | [**create_entity_computed_attributes**](docs/EntitiesApi.md#create_entity_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Post Computed Attributes *EntitiesApi* | [**create_entity_csp_directives**](docs/EntitiesApi.md#create_entity_csp_directives) | **POST** /api/v1/entities/cspDirectives | Post CSP Directives *EntitiesApi* | [**create_entity_custom_application_settings**](docs/EntitiesApi.md#create_entity_custom_application_settings) | **POST** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings | Post Custom Application Settings *EntitiesApi* | [**create_entity_custom_geo_collections**](docs/EntitiesApi.md#create_entity_custom_geo_collections) | **POST** /api/v1/entities/customGeoCollections | Post Custom Geo Collections @@ -946,6 +961,7 @@ Class | Method | HTTP request | Description *EntitiesApi* | [**delete_entity_attribute_hierarchies**](docs/EntitiesApi.md#delete_entity_attribute_hierarchies) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/{objectId} | Delete an Attribute Hierarchy *EntitiesApi* | [**delete_entity_automations**](docs/EntitiesApi.md#delete_entity_automations) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Delete an Automation *EntitiesApi* | [**delete_entity_color_palettes**](docs/EntitiesApi.md#delete_entity_color_palettes) | **DELETE** /api/v1/entities/colorPalettes/{id} | Delete a Color Pallette +*EntitiesApi* | [**delete_entity_computed_attributes**](docs/EntitiesApi.md#delete_entity_computed_attributes) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Delete a Computed Attribute *EntitiesApi* | [**delete_entity_csp_directives**](docs/EntitiesApi.md#delete_entity_csp_directives) | **DELETE** /api/v1/entities/cspDirectives/{id} | Delete CSP Directives *EntitiesApi* | [**delete_entity_custom_application_settings**](docs/EntitiesApi.md#delete_entity_custom_application_settings) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings/{objectId} | Delete a Custom Application Setting *EntitiesApi* | [**delete_entity_custom_geo_collections**](docs/EntitiesApi.md#delete_entity_custom_geo_collections) | **DELETE** /api/v1/entities/customGeoCollections/{id} | Delete Custom Geo Collection @@ -990,6 +1006,7 @@ Class | Method | HTTP request | Description *EntitiesApi* | [**get_all_entities_attributes**](docs/EntitiesApi.md#get_all_entities_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/attributes | Get all Attributes *EntitiesApi* | [**get_all_entities_automations**](docs/EntitiesApi.md#get_all_entities_automations) | **GET** /api/v1/entities/workspaces/{workspaceId}/automations | Get all Automations *EntitiesApi* | [**get_all_entities_color_palettes**](docs/EntitiesApi.md#get_all_entities_color_palettes) | **GET** /api/v1/entities/colorPalettes | Get all Color Pallettes +*EntitiesApi* | [**get_all_entities_computed_attributes**](docs/EntitiesApi.md#get_all_entities_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Get all Computed Attributes *EntitiesApi* | [**get_all_entities_csp_directives**](docs/EntitiesApi.md#get_all_entities_csp_directives) | **GET** /api/v1/entities/cspDirectives | Get CSP Directives *EntitiesApi* | [**get_all_entities_custom_application_settings**](docs/EntitiesApi.md#get_all_entities_custom_application_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings | Get all Custom Application Settings *EntitiesApi* | [**get_all_entities_custom_geo_collections**](docs/EntitiesApi.md#get_all_entities_custom_geo_collections) | **GET** /api/v1/entities/customGeoCollections | Get all Custom Geo Collections @@ -1043,6 +1060,7 @@ Class | Method | HTTP request | Description *EntitiesApi* | [**get_entity_attributes**](docs/EntitiesApi.md#get_entity_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/attributes/{objectId} | Get an Attribute *EntitiesApi* | [**get_entity_automations**](docs/EntitiesApi.md#get_entity_automations) | **GET** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Get an Automation *EntitiesApi* | [**get_entity_color_palettes**](docs/EntitiesApi.md#get_entity_color_palettes) | **GET** /api/v1/entities/colorPalettes/{id} | Get Color Pallette +*EntitiesApi* | [**get_entity_computed_attributes**](docs/EntitiesApi.md#get_entity_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Get a Computed Attribute *EntitiesApi* | [**get_entity_cookie_security_configurations**](docs/EntitiesApi.md#get_entity_cookie_security_configurations) | **GET** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Get CookieSecurityConfiguration *EntitiesApi* | [**get_entity_csp_directives**](docs/EntitiesApi.md#get_entity_csp_directives) | **GET** /api/v1/entities/cspDirectives/{id} | Get CSP Directives *EntitiesApi* | [**get_entity_custom_application_settings**](docs/EntitiesApi.md#get_entity_custom_application_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings/{objectId} | Get a Custom Application Setting @@ -1095,6 +1113,7 @@ Class | Method | HTTP request | Description *EntitiesApi* | [**patch_entity_attributes**](docs/EntitiesApi.md#patch_entity_attributes) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/attributes/{objectId} | Patch an Attribute (beta) *EntitiesApi* | [**patch_entity_automations**](docs/EntitiesApi.md#patch_entity_automations) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Patch an Automation *EntitiesApi* | [**patch_entity_color_palettes**](docs/EntitiesApi.md#patch_entity_color_palettes) | **PATCH** /api/v1/entities/colorPalettes/{id} | Patch Color Pallette +*EntitiesApi* | [**patch_entity_computed_attributes**](docs/EntitiesApi.md#patch_entity_computed_attributes) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Patch a Computed Attribute *EntitiesApi* | [**patch_entity_cookie_security_configurations**](docs/EntitiesApi.md#patch_entity_cookie_security_configurations) | **PATCH** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Patch CookieSecurityConfiguration *EntitiesApi* | [**patch_entity_csp_directives**](docs/EntitiesApi.md#patch_entity_csp_directives) | **PATCH** /api/v1/entities/cspDirectives/{id} | Patch CSP Directives *EntitiesApi* | [**patch_entity_custom_application_settings**](docs/EntitiesApi.md#patch_entity_custom_application_settings) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings/{objectId} | Patch a Custom Application Setting @@ -1137,6 +1156,7 @@ Class | Method | HTTP request | Description *EntitiesApi* | [**search_entities_attributes**](docs/EntitiesApi.md#search_entities_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/attributes/search | The search endpoint (beta) *EntitiesApi* | [**search_entities_automation_results**](docs/EntitiesApi.md#search_entities_automation_results) | **POST** /api/v1/entities/workspaces/{workspaceId}/automationResults/search | The search endpoint (beta) *EntitiesApi* | [**search_entities_automations**](docs/EntitiesApi.md#search_entities_automations) | **POST** /api/v1/entities/workspaces/{workspaceId}/automations/search | The search endpoint (beta) +*EntitiesApi* | [**search_entities_computed_attributes**](docs/EntitiesApi.md#search_entities_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/search | The search endpoint (beta) *EntitiesApi* | [**search_entities_custom_application_settings**](docs/EntitiesApi.md#search_entities_custom_application_settings) | **POST** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings/search | The search endpoint (beta) *EntitiesApi* | [**search_entities_dashboard_plugins**](docs/EntitiesApi.md#search_entities_dashboard_plugins) | **POST** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/search | The search endpoint (beta) *EntitiesApi* | [**search_entities_datasets**](docs/EntitiesApi.md#search_entities_datasets) | **POST** /api/v1/entities/workspaces/{workspaceId}/datasets/search | The search endpoint (beta) @@ -1160,6 +1180,7 @@ Class | Method | HTTP request | Description *EntitiesApi* | [**update_entity_attribute_hierarchies**](docs/EntitiesApi.md#update_entity_attribute_hierarchies) | **PUT** /api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/{objectId} | Put an Attribute Hierarchy *EntitiesApi* | [**update_entity_automations**](docs/EntitiesApi.md#update_entity_automations) | **PUT** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Put an Automation *EntitiesApi* | [**update_entity_color_palettes**](docs/EntitiesApi.md#update_entity_color_palettes) | **PUT** /api/v1/entities/colorPalettes/{id} | Put Color Pallette +*EntitiesApi* | [**update_entity_computed_attributes**](docs/EntitiesApi.md#update_entity_computed_attributes) | **PUT** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Put a Computed Attribute *EntitiesApi* | [**update_entity_cookie_security_configurations**](docs/EntitiesApi.md#update_entity_cookie_security_configurations) | **PUT** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Put CookieSecurityConfiguration *EntitiesApi* | [**update_entity_csp_directives**](docs/EntitiesApi.md#update_entity_csp_directives) | **PUT** /api/v1/entities/cspDirectives/{id} | Put CSP Directives *EntitiesApi* | [**update_entity_custom_application_settings**](docs/EntitiesApi.md#update_entity_custom_application_settings) | **PUT** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings/{objectId} | Put a Custom Application Setting @@ -1678,6 +1699,8 @@ Class | Method | HTTP request | Description - [DeclarativeCalendar](docs/DeclarativeCalendar.md) - [DeclarativeColorPalette](docs/DeclarativeColorPalette.md) - [DeclarativeColumn](docs/DeclarativeColumn.md) + - [DeclarativeComputedAttribute](docs/DeclarativeComputedAttribute.md) + - [DeclarativeComputedAttributeContent](docs/DeclarativeComputedAttributeContent.md) - [DeclarativeCspDirective](docs/DeclarativeCspDirective.md) - [DeclarativeCustomApplicationSetting](docs/DeclarativeCustomApplicationSetting.md) - [DeclarativeCustomGeoCollection](docs/DeclarativeCustomGeoCollection.md) @@ -2003,6 +2026,26 @@ Class | Method | HTTP request | Description - [JsonApiColorPalettePatch](docs/JsonApiColorPalettePatch.md) - [JsonApiColorPalettePatchAttributes](docs/JsonApiColorPalettePatchAttributes.md) - [JsonApiColorPalettePatchDocument](docs/JsonApiColorPalettePatchDocument.md) + - [JsonApiComputedAttributeIn](docs/JsonApiComputedAttributeIn.md) + - [JsonApiComputedAttributeInAttributes](docs/JsonApiComputedAttributeInAttributes.md) + - [JsonApiComputedAttributeInAttributesContent](docs/JsonApiComputedAttributeInAttributesContent.md) + - [JsonApiComputedAttributeInDocument](docs/JsonApiComputedAttributeInDocument.md) + - [JsonApiComputedAttributeLinkage](docs/JsonApiComputedAttributeLinkage.md) + - [JsonApiComputedAttributeOut](docs/JsonApiComputedAttributeOut.md) + - [JsonApiComputedAttributeOutAttributes](docs/JsonApiComputedAttributeOutAttributes.md) + - [JsonApiComputedAttributeOutDocument](docs/JsonApiComputedAttributeOutDocument.md) + - [JsonApiComputedAttributeOutIncludes](docs/JsonApiComputedAttributeOutIncludes.md) + - [JsonApiComputedAttributeOutList](docs/JsonApiComputedAttributeOutList.md) + - [JsonApiComputedAttributeOutRelationships](docs/JsonApiComputedAttributeOutRelationships.md) + - [JsonApiComputedAttributeOutRelationshipsComputedAttributes](docs/JsonApiComputedAttributeOutRelationshipsComputedAttributes.md) + - [JsonApiComputedAttributeOutRelationshipsFacts](docs/JsonApiComputedAttributeOutRelationshipsFacts.md) + - [JsonApiComputedAttributeOutWithLinks](docs/JsonApiComputedAttributeOutWithLinks.md) + - [JsonApiComputedAttributePatch](docs/JsonApiComputedAttributePatch.md) + - [JsonApiComputedAttributePatchAttributes](docs/JsonApiComputedAttributePatchAttributes.md) + - [JsonApiComputedAttributePatchDocument](docs/JsonApiComputedAttributePatchDocument.md) + - [JsonApiComputedAttributePostOptionalId](docs/JsonApiComputedAttributePostOptionalId.md) + - [JsonApiComputedAttributePostOptionalIdDocument](docs/JsonApiComputedAttributePostOptionalIdDocument.md) + - [JsonApiComputedAttributeToManyLinkage](docs/JsonApiComputedAttributeToManyLinkage.md) - [JsonApiCookieSecurityConfigurationIn](docs/JsonApiCookieSecurityConfigurationIn.md) - [JsonApiCookieSecurityConfigurationInAttributes](docs/JsonApiCookieSecurityConfigurationInAttributes.md) - [JsonApiCookieSecurityConfigurationInDocument](docs/JsonApiCookieSecurityConfigurationInDocument.md) @@ -2097,7 +2140,6 @@ Class | Method | HTTP request | Description - [JsonApiDatasetOutList](docs/JsonApiDatasetOutList.md) - [JsonApiDatasetOutRelationships](docs/JsonApiDatasetOutRelationships.md) - [JsonApiDatasetOutRelationshipsAggregatedFacts](docs/JsonApiDatasetOutRelationshipsAggregatedFacts.md) - - [JsonApiDatasetOutRelationshipsFacts](docs/JsonApiDatasetOutRelationshipsFacts.md) - [JsonApiDatasetOutRelationshipsWorkspaceDataFilters](docs/JsonApiDatasetOutRelationshipsWorkspaceDataFilters.md) - [JsonApiDatasetOutWithLinks](docs/JsonApiDatasetOutWithLinks.md) - [JsonApiDatasetPatch](docs/JsonApiDatasetPatch.md) @@ -2291,15 +2333,12 @@ Class | Method | HTTP request | Description - [JsonApiMemoryItemPostOptionalIdDocument](docs/JsonApiMemoryItemPostOptionalIdDocument.md) - [JsonApiMetricIn](docs/JsonApiMetricIn.md) - [JsonApiMetricInAttributes](docs/JsonApiMetricInAttributes.md) - - [JsonApiMetricInAttributesContent](docs/JsonApiMetricInAttributesContent.md) - [JsonApiMetricInDocument](docs/JsonApiMetricInDocument.md) - [JsonApiMetricLinkage](docs/JsonApiMetricLinkage.md) - [JsonApiMetricOut](docs/JsonApiMetricOut.md) - [JsonApiMetricOutAttributes](docs/JsonApiMetricOutAttributes.md) - [JsonApiMetricOutDocument](docs/JsonApiMetricOutDocument.md) - - [JsonApiMetricOutIncludes](docs/JsonApiMetricOutIncludes.md) - [JsonApiMetricOutList](docs/JsonApiMetricOutList.md) - - [JsonApiMetricOutRelationships](docs/JsonApiMetricOutRelationships.md) - [JsonApiMetricOutWithLinks](docs/JsonApiMetricOutWithLinks.md) - [JsonApiMetricPatch](docs/JsonApiMetricPatch.md) - [JsonApiMetricPatchAttributes](docs/JsonApiMetricPatchAttributes.md) diff --git a/gooddata-api-client/docs/ActionsApi.md b/gooddata-api-client/docs/ActionsApi.md index 75d02810d..0a949bbc0 100644 --- a/gooddata-api-client/docs/ActionsApi.md +++ b/gooddata-api-client/docs/ActionsApi.md @@ -1986,7 +1986,7 @@ with gooddata_api_client.ApiClient() as api_client: validate_by=[ ValidateByItem( id="id_example", - type="fact", + type="label", ), ], ) # ElementsRequest | diff --git a/gooddata-api-client/docs/AfmObjectIdentifierLabelIdentifier.md b/gooddata-api-client/docs/AfmObjectIdentifierLabelIdentifier.md index f47d11e58..1614656fd 100644 --- a/gooddata-api-client/docs/AfmObjectIdentifierLabelIdentifier.md +++ b/gooddata-api-client/docs/AfmObjectIdentifierLabelIdentifier.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **str** | | -**type** | **str** | | defaults to "label" +**type** | **str** | | **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/AnalyticsModelApi.md b/gooddata-api-client/docs/AnalyticsModelApi.md index e178c8c17..e55fdc4f4 100644 --- a/gooddata-api-client/docs/AnalyticsModelApi.md +++ b/gooddata-api-client/docs/AnalyticsModelApi.md @@ -175,6 +175,42 @@ with gooddata_api_client.ApiClient() as api_client: title="Count of goods", ), ], + computed_attributes=[ + DeclarativeComputedAttribute( + certification="CERTIFIED", + certification_message="certification_message_example", + certified_at="0480-72-88 80:01", + certified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + content=DeclarativeComputedAttributeContent( + format="%0.2f", + maql="SELECT 1", + metric_type="UNSPECIFIED", + ), + created_at="2023-07-20 12:30", + created_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + data_type="STRING", + description="Sales for all the data available.", + id="total-sales", + is_hidden=False, + is_nullable=False, + locale="en-US", + modified_at="2023-07-20 12:30", + modified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + null_value="empty_value", + tags=["Revenues"], + title="Total sales", + value_type="TEXT", + ), + ], dashboard_plugins=[ DeclarativeDashboardPlugin( content=JsonNode(), diff --git a/gooddata-api-client/docs/ComputationApi.md b/gooddata-api-client/docs/ComputationApi.md index 723db5d67..90a1b6590 100644 --- a/gooddata-api-client/docs/ComputationApi.md +++ b/gooddata-api-client/docs/ComputationApi.md @@ -412,7 +412,7 @@ with gooddata_api_client.ApiClient() as api_client: validate_by=[ ValidateByItem( id="id_example", - type="fact", + type="label", ), ], ) # ElementsRequest | diff --git a/gooddata-api-client/docs/ComputedAttributeControllerApi.md b/gooddata-api-client/docs/ComputedAttributeControllerApi.md new file mode 100644 index 000000000..6a7b19b62 --- /dev/null +++ b/gooddata-api-client/docs/ComputedAttributeControllerApi.md @@ -0,0 +1,690 @@ +# gooddata_api_client.ComputedAttributeControllerApi + +All URIs are relative to *http://localhost* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**create_entity_computed_attributes**](ComputedAttributeControllerApi.md#create_entity_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Post Computed Attributes +[**delete_entity_computed_attributes**](ComputedAttributeControllerApi.md#delete_entity_computed_attributes) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Delete a Computed Attribute +[**get_all_entities_computed_attributes**](ComputedAttributeControllerApi.md#get_all_entities_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Get all Computed Attributes +[**get_entity_computed_attributes**](ComputedAttributeControllerApi.md#get_entity_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Get a Computed Attribute +[**patch_entity_computed_attributes**](ComputedAttributeControllerApi.md#patch_entity_computed_attributes) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Patch a Computed Attribute +[**search_entities_computed_attributes**](ComputedAttributeControllerApi.md#search_entities_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/search | The search endpoint (beta) +[**update_entity_computed_attributes**](ComputedAttributeControllerApi.md#update_entity_computed_attributes) | **PUT** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Put a Computed Attribute + + +# **create_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument create_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document) + +Post Computed Attributes + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attribute_controller_api +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from gooddata_api_client.model.json_api_computed_attribute_post_optional_id_document import JsonApiComputedAttributePostOptionalIdDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attribute_controller_api.ComputedAttributeControllerApi(api_client) + workspace_id = "workspaceId_example" # str | + json_api_computed_attribute_post_optional_id_document = JsonApiComputedAttributePostOptionalIdDocument( + data=JsonApiComputedAttributePostOptionalId( + attributes=JsonApiComputedAttributeInAttributes( + are_relations_valid=True, + content=JsonApiComputedAttributeInAttributesContent( + format="format_example", + maql="maql_example", + metric_type="UNSPECIFIED", + ), + data_type="INT", + description="description_example", + is_hidden=True, + is_nullable=True, + locale="locale_example", + null_value="null_value_example", + tags=[ + "tags_example", + ], + title="title_example", + value_type="TEXT", + ), + id="id1", + type="computedAttribute", + ), + ) # JsonApiComputedAttributePostOptionalIdDocument | + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + meta_include = [ + "metaInclude=origin,all", + ] # [str] | Include Meta objects. (optional) + + # example passing only required values which don't have defaults set + try: + # Post Computed Attributes + api_response = api_instance.create_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->create_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Post Computed Attributes + api_response = api_instance.create_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document, include=include, meta_include=meta_include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->create_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **json_api_computed_attribute_post_optional_id_document** | [**JsonApiComputedAttributePostOptionalIdDocument**](JsonApiComputedAttributePostOptionalIdDocument.md)| | + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + **meta_include** | **[str]**| Include Meta objects. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, application/vnd.gooddata.api+json + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Request successfully processed | - | + +[[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_entity_computed_attributes** +> delete_entity_computed_attributes(workspace_id, object_id) + +Delete a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attribute_controller_api +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attribute_controller_api.ComputedAttributeControllerApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + + # example passing only required values which don't have defaults set + try: + # Delete a Computed Attribute + api_instance.delete_entity_computed_attributes(workspace_id, object_id) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->delete_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | Successfully deleted | - | + +[[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_all_entities_computed_attributes** +> JsonApiComputedAttributeOutList get_all_entities_computed_attributes(workspace_id) + +Get all Computed Attributes + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attribute_controller_api +from gooddata_api_client.model.json_api_computed_attribute_out_list import JsonApiComputedAttributeOutList +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attribute_controller_api.ComputedAttributeControllerApi(api_client) + workspace_id = "workspaceId_example" # str | + origin = "ALL" # str | (optional) if omitted the server will use the default value of "ALL" + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + page = 0 # int | Zero-based page index (0..N) (optional) if omitted the server will use the default value of 0 + size = 20 # int | The size of the page to be returned (optional) if omitted the server will use the default value of 20 + sort = [ + "sort_example", + ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional) + x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False + meta_include = [ + "metaInclude=origin,page,all", + ] # [str] | Include Meta objects. (optional) + + # example passing only required values which don't have defaults set + try: + # Get all Computed Attributes + api_response = api_instance.get_all_entities_computed_attributes(workspace_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->get_all_entities_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Get all Computed Attributes + api_response = api_instance.get_all_entities_computed_attributes(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations, meta_include=meta_include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->get_all_entities_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL" + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + **page** | **int**| Zero-based page index (0..N) | [optional] if omitted the server will use the default value of 0 + **size** | **int**| The size of the page to be returned | [optional] if omitted the server will use the default value of 20 + **sort** | **[str]**| Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. | [optional] + **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False + **meta_include** | **[str]**| Include Meta objects. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutList**](JsonApiComputedAttributeOutList.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument get_entity_computed_attributes(workspace_id, object_id) + +Get a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attribute_controller_api +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attribute_controller_api.ComputedAttributeControllerApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False + meta_include = [ + "metaInclude=origin,all", + ] # [str] | Include Meta objects. (optional) + + # example passing only required values which don't have defaults set + try: + # Get a Computed Attribute + api_response = api_instance.get_entity_computed_attributes(workspace_id, object_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->get_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Get a Computed Attribute + api_response = api_instance.get_entity_computed_attributes(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations, meta_include=meta_include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->get_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False + **meta_include** | **[str]**| Include Meta objects. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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) + +# **patch_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document) + +Patch a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attribute_controller_api +from gooddata_api_client.model.json_api_computed_attribute_patch_document import JsonApiComputedAttributePatchDocument +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attribute_controller_api.ComputedAttributeControllerApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + json_api_computed_attribute_patch_document = JsonApiComputedAttributePatchDocument( + data=JsonApiComputedAttributePatch( + attributes=JsonApiComputedAttributePatchAttributes( + are_relations_valid=True, + content=JsonApiComputedAttributeInAttributesContent( + format="format_example", + maql="maql_example", + metric_type="UNSPECIFIED", + ), + data_type="INT", + description="description_example", + is_hidden=True, + is_nullable=True, + locale="locale_example", + null_value="null_value_example", + tags=[ + "tags_example", + ], + title="title_example", + value_type="TEXT", + ), + id="id1", + type="computedAttribute", + ), + ) # JsonApiComputedAttributePatchDocument | + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + + # example passing only required values which don't have defaults set + try: + # Patch a Computed Attribute + api_response = api_instance.patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->patch_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Patch a Computed Attribute + api_response = api_instance.patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document, filter=filter, include=include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->patch_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + **json_api_computed_attribute_patch_document** | [**JsonApiComputedAttributePatchDocument**](JsonApiComputedAttributePatchDocument.md)| | + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, application/vnd.gooddata.api+json + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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) + +# **search_entities_computed_attributes** +> JsonApiComputedAttributeOutList search_entities_computed_attributes(workspace_id, entity_search_body) + +The search endpoint (beta) + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attribute_controller_api +from gooddata_api_client.model.json_api_computed_attribute_out_list import JsonApiComputedAttributeOutList +from gooddata_api_client.model.entity_search_body import EntitySearchBody +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attribute_controller_api.ComputedAttributeControllerApi(api_client) + workspace_id = "workspaceId_example" # str | + entity_search_body = EntitySearchBody( + filter="filter_example", + include=[ + "include_example", + ], + meta_include=[ + "meta_include_example", + ], + page=EntitySearchPage( + index=0, + size=100, + ), + sort=[ + EntitySearchSort( + direction="ASC", + _property="_property_example", + ), + ], + ) # EntitySearchBody | Search request body with filter, pagination, and sorting options + origin = "ALL" # str | (optional) if omitted the server will use the default value of "ALL" + x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False + + # example passing only required values which don't have defaults set + try: + # The search endpoint (beta) + api_response = api_instance.search_entities_computed_attributes(workspace_id, entity_search_body) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->search_entities_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # The search endpoint (beta) + api_response = api_instance.search_entities_computed_attributes(workspace_id, entity_search_body, origin=origin, x_gdc_validate_relations=x_gdc_validate_relations) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->search_entities_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **entity_search_body** | [**EntitySearchBody**](EntitySearchBody.md)| Search request body with filter, pagination, and sorting options | + **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL" + **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False + +### Return type + +[**JsonApiComputedAttributeOutList**](JsonApiComputedAttributeOutList.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument update_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document) + +Put a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attribute_controller_api +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from gooddata_api_client.model.json_api_computed_attribute_in_document import JsonApiComputedAttributeInDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attribute_controller_api.ComputedAttributeControllerApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + json_api_computed_attribute_in_document = JsonApiComputedAttributeInDocument( + data=JsonApiComputedAttributeIn( + attributes=JsonApiComputedAttributeInAttributes( + are_relations_valid=True, + content=JsonApiComputedAttributeInAttributesContent( + format="format_example", + maql="maql_example", + metric_type="UNSPECIFIED", + ), + data_type="INT", + description="description_example", + is_hidden=True, + is_nullable=True, + locale="locale_example", + null_value="null_value_example", + tags=[ + "tags_example", + ], + title="title_example", + value_type="TEXT", + ), + id="id1", + type="computedAttribute", + ), + ) # JsonApiComputedAttributeInDocument | + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + + # example passing only required values which don't have defaults set + try: + # Put a Computed Attribute + api_response = api_instance.update_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->update_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Put a Computed Attribute + api_response = api_instance.update_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document, filter=filter, include=include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributeControllerApi->update_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + **json_api_computed_attribute_in_document** | [**JsonApiComputedAttributeInDocument**](JsonApiComputedAttributeInDocument.md)| | + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, application/vnd.gooddata.api+json + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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/gooddata-api-client/docs/ComputedAttributesApi.md b/gooddata-api-client/docs/ComputedAttributesApi.md new file mode 100644 index 000000000..08e3954de --- /dev/null +++ b/gooddata-api-client/docs/ComputedAttributesApi.md @@ -0,0 +1,690 @@ +# gooddata_api_client.ComputedAttributesApi + +All URIs are relative to *http://localhost* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**create_entity_computed_attributes**](ComputedAttributesApi.md#create_entity_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Post Computed Attributes +[**delete_entity_computed_attributes**](ComputedAttributesApi.md#delete_entity_computed_attributes) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Delete a Computed Attribute +[**get_all_entities_computed_attributes**](ComputedAttributesApi.md#get_all_entities_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Get all Computed Attributes +[**get_entity_computed_attributes**](ComputedAttributesApi.md#get_entity_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Get a Computed Attribute +[**patch_entity_computed_attributes**](ComputedAttributesApi.md#patch_entity_computed_attributes) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Patch a Computed Attribute +[**search_entities_computed_attributes**](ComputedAttributesApi.md#search_entities_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/search | The search endpoint (beta) +[**update_entity_computed_attributes**](ComputedAttributesApi.md#update_entity_computed_attributes) | **PUT** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Put a Computed Attribute + + +# **create_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument create_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document) + +Post Computed Attributes + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attributes_api +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from gooddata_api_client.model.json_api_computed_attribute_post_optional_id_document import JsonApiComputedAttributePostOptionalIdDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attributes_api.ComputedAttributesApi(api_client) + workspace_id = "workspaceId_example" # str | + json_api_computed_attribute_post_optional_id_document = JsonApiComputedAttributePostOptionalIdDocument( + data=JsonApiComputedAttributePostOptionalId( + attributes=JsonApiComputedAttributeInAttributes( + are_relations_valid=True, + content=JsonApiComputedAttributeInAttributesContent( + format="format_example", + maql="maql_example", + metric_type="UNSPECIFIED", + ), + data_type="INT", + description="description_example", + is_hidden=True, + is_nullable=True, + locale="locale_example", + null_value="null_value_example", + tags=[ + "tags_example", + ], + title="title_example", + value_type="TEXT", + ), + id="id1", + type="computedAttribute", + ), + ) # JsonApiComputedAttributePostOptionalIdDocument | + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + meta_include = [ + "metaInclude=origin,all", + ] # [str] | Include Meta objects. (optional) + + # example passing only required values which don't have defaults set + try: + # Post Computed Attributes + api_response = api_instance.create_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->create_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Post Computed Attributes + api_response = api_instance.create_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document, include=include, meta_include=meta_include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->create_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **json_api_computed_attribute_post_optional_id_document** | [**JsonApiComputedAttributePostOptionalIdDocument**](JsonApiComputedAttributePostOptionalIdDocument.md)| | + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + **meta_include** | **[str]**| Include Meta objects. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, application/vnd.gooddata.api+json + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Request successfully processed | - | + +[[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_entity_computed_attributes** +> delete_entity_computed_attributes(workspace_id, object_id) + +Delete a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attributes_api +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attributes_api.ComputedAttributesApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + + # example passing only required values which don't have defaults set + try: + # Delete a Computed Attribute + api_instance.delete_entity_computed_attributes(workspace_id, object_id) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->delete_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | Successfully deleted | - | + +[[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_all_entities_computed_attributes** +> JsonApiComputedAttributeOutList get_all_entities_computed_attributes(workspace_id) + +Get all Computed Attributes + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attributes_api +from gooddata_api_client.model.json_api_computed_attribute_out_list import JsonApiComputedAttributeOutList +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attributes_api.ComputedAttributesApi(api_client) + workspace_id = "workspaceId_example" # str | + origin = "ALL" # str | (optional) if omitted the server will use the default value of "ALL" + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + page = 0 # int | Zero-based page index (0..N) (optional) if omitted the server will use the default value of 0 + size = 20 # int | The size of the page to be returned (optional) if omitted the server will use the default value of 20 + sort = [ + "sort_example", + ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional) + x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False + meta_include = [ + "metaInclude=origin,page,all", + ] # [str] | Include Meta objects. (optional) + + # example passing only required values which don't have defaults set + try: + # Get all Computed Attributes + api_response = api_instance.get_all_entities_computed_attributes(workspace_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->get_all_entities_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Get all Computed Attributes + api_response = api_instance.get_all_entities_computed_attributes(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations, meta_include=meta_include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->get_all_entities_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL" + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + **page** | **int**| Zero-based page index (0..N) | [optional] if omitted the server will use the default value of 0 + **size** | **int**| The size of the page to be returned | [optional] if omitted the server will use the default value of 20 + **sort** | **[str]**| Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. | [optional] + **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False + **meta_include** | **[str]**| Include Meta objects. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutList**](JsonApiComputedAttributeOutList.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument get_entity_computed_attributes(workspace_id, object_id) + +Get a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attributes_api +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attributes_api.ComputedAttributesApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False + meta_include = [ + "metaInclude=origin,all", + ] # [str] | Include Meta objects. (optional) + + # example passing only required values which don't have defaults set + try: + # Get a Computed Attribute + api_response = api_instance.get_entity_computed_attributes(workspace_id, object_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->get_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Get a Computed Attribute + api_response = api_instance.get_entity_computed_attributes(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations, meta_include=meta_include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->get_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False + **meta_include** | **[str]**| Include Meta objects. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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) + +# **patch_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document) + +Patch a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attributes_api +from gooddata_api_client.model.json_api_computed_attribute_patch_document import JsonApiComputedAttributePatchDocument +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attributes_api.ComputedAttributesApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + json_api_computed_attribute_patch_document = JsonApiComputedAttributePatchDocument( + data=JsonApiComputedAttributePatch( + attributes=JsonApiComputedAttributePatchAttributes( + are_relations_valid=True, + content=JsonApiComputedAttributeInAttributesContent( + format="format_example", + maql="maql_example", + metric_type="UNSPECIFIED", + ), + data_type="INT", + description="description_example", + is_hidden=True, + is_nullable=True, + locale="locale_example", + null_value="null_value_example", + tags=[ + "tags_example", + ], + title="title_example", + value_type="TEXT", + ), + id="id1", + type="computedAttribute", + ), + ) # JsonApiComputedAttributePatchDocument | + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + + # example passing only required values which don't have defaults set + try: + # Patch a Computed Attribute + api_response = api_instance.patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->patch_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Patch a Computed Attribute + api_response = api_instance.patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document, filter=filter, include=include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->patch_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + **json_api_computed_attribute_patch_document** | [**JsonApiComputedAttributePatchDocument**](JsonApiComputedAttributePatchDocument.md)| | + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, application/vnd.gooddata.api+json + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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) + +# **search_entities_computed_attributes** +> JsonApiComputedAttributeOutList search_entities_computed_attributes(workspace_id, entity_search_body) + +The search endpoint (beta) + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attributes_api +from gooddata_api_client.model.json_api_computed_attribute_out_list import JsonApiComputedAttributeOutList +from gooddata_api_client.model.entity_search_body import EntitySearchBody +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attributes_api.ComputedAttributesApi(api_client) + workspace_id = "workspaceId_example" # str | + entity_search_body = EntitySearchBody( + filter="filter_example", + include=[ + "include_example", + ], + meta_include=[ + "meta_include_example", + ], + page=EntitySearchPage( + index=0, + size=100, + ), + sort=[ + EntitySearchSort( + direction="ASC", + _property="_property_example", + ), + ], + ) # EntitySearchBody | Search request body with filter, pagination, and sorting options + origin = "ALL" # str | (optional) if omitted the server will use the default value of "ALL" + x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False + + # example passing only required values which don't have defaults set + try: + # The search endpoint (beta) + api_response = api_instance.search_entities_computed_attributes(workspace_id, entity_search_body) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->search_entities_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # The search endpoint (beta) + api_response = api_instance.search_entities_computed_attributes(workspace_id, entity_search_body, origin=origin, x_gdc_validate_relations=x_gdc_validate_relations) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->search_entities_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **entity_search_body** | [**EntitySearchBody**](EntitySearchBody.md)| Search request body with filter, pagination, and sorting options | + **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL" + **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False + +### Return type + +[**JsonApiComputedAttributeOutList**](JsonApiComputedAttributeOutList.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument update_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document) + +Put a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computed_attributes_api +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from gooddata_api_client.model.json_api_computed_attribute_in_document import JsonApiComputedAttributeInDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = computed_attributes_api.ComputedAttributesApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + json_api_computed_attribute_in_document = JsonApiComputedAttributeInDocument( + data=JsonApiComputedAttributeIn( + attributes=JsonApiComputedAttributeInAttributes( + are_relations_valid=True, + content=JsonApiComputedAttributeInAttributesContent( + format="format_example", + maql="maql_example", + metric_type="UNSPECIFIED", + ), + data_type="INT", + description="description_example", + is_hidden=True, + is_nullable=True, + locale="locale_example", + null_value="null_value_example", + tags=[ + "tags_example", + ], + title="title_example", + value_type="TEXT", + ), + id="id1", + type="computedAttribute", + ), + ) # JsonApiComputedAttributeInDocument | + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + + # example passing only required values which don't have defaults set + try: + # Put a Computed Attribute + api_response = api_instance.update_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->update_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Put a Computed Attribute + api_response = api_instance.update_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document, filter=filter, include=include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputedAttributesApi->update_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + **json_api_computed_attribute_in_document** | [**JsonApiComputedAttributeInDocument**](JsonApiComputedAttributeInDocument.md)| | + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, application/vnd.gooddata.api+json + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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/gooddata-api-client/docs/DeclarativeAnalyticsLayer.md b/gooddata-api-client/docs/DeclarativeAnalyticsLayer.md index d03823f21..a8edca8dc 100644 --- a/gooddata-api-client/docs/DeclarativeAnalyticsLayer.md +++ b/gooddata-api-client/docs/DeclarativeAnalyticsLayer.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes **analytical_dashboard_extensions** | [**[DeclarativeAnalyticalDashboardExtension]**](DeclarativeAnalyticalDashboardExtension.md) | A list of dashboard permissions assigned to a related dashboard. | [optional] **analytical_dashboards** | [**[DeclarativeAnalyticalDashboard]**](DeclarativeAnalyticalDashboard.md) | A list of analytical dashboards available in the model. | [optional] **attribute_hierarchies** | [**[DeclarativeAttributeHierarchy]**](DeclarativeAttributeHierarchy.md) | A list of attribute hierarchies. | [optional] +**computed_attributes** | [**[DeclarativeComputedAttribute]**](DeclarativeComputedAttribute.md) | A list of computed attributes available in the model. | [optional] **dashboard_plugins** | [**[DeclarativeDashboardPlugin]**](DeclarativeDashboardPlugin.md) | A list of dashboard plugins available in the model. | [optional] **export_definitions** | [**[DeclarativeExportDefinition]**](DeclarativeExportDefinition.md) | A list of export definitions. | [optional] **filter_contexts** | [**[DeclarativeFilterContext]**](DeclarativeFilterContext.md) | A list of filter contexts available in the model. | [optional] diff --git a/gooddata-api-client/docs/DeclarativeComputedAttribute.md b/gooddata-api-client/docs/DeclarativeComputedAttribute.md new file mode 100644 index 000000000..710b26170 --- /dev/null +++ b/gooddata-api-client/docs/DeclarativeComputedAttribute.md @@ -0,0 +1,30 @@ +# DeclarativeComputedAttribute + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**content** | [**DeclarativeComputedAttributeContent**](DeclarativeComputedAttributeContent.md) | | +**id** | **str** | Computed attribute ID. | +**title** | **str** | Computed attribute title. | +**certification** | **str** | Certification status of the entity. | [optional] if omitted the server will use the default value of "CERTIFIED" +**certification_message** | **str, none_type** | Optional message associated with the certification. | [optional] +**certified_at** | **str, none_type** | Time when the certification was set. | [optional] +**certified_by** | [**DeclarativeUserIdentifier**](DeclarativeUserIdentifier.md) | | [optional] +**created_at** | **str, none_type** | Time of the entity creation. | [optional] +**created_by** | [**DeclarativeUserIdentifier**](DeclarativeUserIdentifier.md) | | [optional] +**data_type** | **str** | Computed attribute data type | [optional] +**description** | **str** | Computed attribute description. | [optional] +**is_hidden** | **bool** | If true, this computed attribute is hidden from AI search results. | [optional] +**is_nullable** | **bool** | Flag indicating whether the associated source column allows null values. | [optional] +**locale** | **str** | Default locale for primary computed label. | [optional] +**modified_at** | **str, none_type** | Time of the last entity modification. | [optional] +**modified_by** | [**DeclarativeUserIdentifier**](DeclarativeUserIdentifier.md) | | [optional] +**null_value** | **str** | Value used in coalesce during joins instead of null. | [optional] +**tags** | **[str]** | A list of tags. | [optional] +**value_type** | **str** | Specific type of the computed attribute value | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/DeclarativeComputedAttributeContent.md b/gooddata-api-client/docs/DeclarativeComputedAttributeContent.md new file mode 100644 index 000000000..87b7cadea --- /dev/null +++ b/gooddata-api-client/docs/DeclarativeComputedAttributeContent.md @@ -0,0 +1,15 @@ +# DeclarativeComputedAttributeContent + +A definition of the computed attribute content. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**maql** | **str** | | +**format** | **str, none_type** | Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:<label_id>] for raw filter value passthrough. Currency tokens: [$CURRENCY:<label_id>] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values. | [optional] +**metric_type** | **str** | Categorizes metric semantics (e.g., currency). | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/EntitiesApi.md b/gooddata-api-client/docs/EntitiesApi.md index 8e2d895a4..925cc644c 100644 --- a/gooddata-api-client/docs/EntitiesApi.md +++ b/gooddata-api-client/docs/EntitiesApi.md @@ -11,6 +11,7 @@ Method | HTTP request | Description [**create_entity_attribute_hierarchies**](EntitiesApi.md#create_entity_attribute_hierarchies) | **POST** /api/v1/entities/workspaces/{workspaceId}/attributeHierarchies | Post Attribute Hierarchies [**create_entity_automations**](EntitiesApi.md#create_entity_automations) | **POST** /api/v1/entities/workspaces/{workspaceId}/automations | Post Automations [**create_entity_color_palettes**](EntitiesApi.md#create_entity_color_palettes) | **POST** /api/v1/entities/colorPalettes | Post Color Pallettes +[**create_entity_computed_attributes**](EntitiesApi.md#create_entity_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Post Computed Attributes [**create_entity_csp_directives**](EntitiesApi.md#create_entity_csp_directives) | **POST** /api/v1/entities/cspDirectives | Post CSP Directives [**create_entity_custom_application_settings**](EntitiesApi.md#create_entity_custom_application_settings) | **POST** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings | Post Custom Application Settings [**create_entity_custom_geo_collections**](EntitiesApi.md#create_entity_custom_geo_collections) | **POST** /api/v1/entities/customGeoCollections | Post Custom Geo Collections @@ -52,6 +53,7 @@ Method | HTTP request | Description [**delete_entity_attribute_hierarchies**](EntitiesApi.md#delete_entity_attribute_hierarchies) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/{objectId} | Delete an Attribute Hierarchy [**delete_entity_automations**](EntitiesApi.md#delete_entity_automations) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Delete an Automation [**delete_entity_color_palettes**](EntitiesApi.md#delete_entity_color_palettes) | **DELETE** /api/v1/entities/colorPalettes/{id} | Delete a Color Pallette +[**delete_entity_computed_attributes**](EntitiesApi.md#delete_entity_computed_attributes) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Delete a Computed Attribute [**delete_entity_csp_directives**](EntitiesApi.md#delete_entity_csp_directives) | **DELETE** /api/v1/entities/cspDirectives/{id} | Delete CSP Directives [**delete_entity_custom_application_settings**](EntitiesApi.md#delete_entity_custom_application_settings) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings/{objectId} | Delete a Custom Application Setting [**delete_entity_custom_geo_collections**](EntitiesApi.md#delete_entity_custom_geo_collections) | **DELETE** /api/v1/entities/customGeoCollections/{id} | Delete Custom Geo Collection @@ -96,6 +98,7 @@ Method | HTTP request | Description [**get_all_entities_attributes**](EntitiesApi.md#get_all_entities_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/attributes | Get all Attributes [**get_all_entities_automations**](EntitiesApi.md#get_all_entities_automations) | **GET** /api/v1/entities/workspaces/{workspaceId}/automations | Get all Automations [**get_all_entities_color_palettes**](EntitiesApi.md#get_all_entities_color_palettes) | **GET** /api/v1/entities/colorPalettes | Get all Color Pallettes +[**get_all_entities_computed_attributes**](EntitiesApi.md#get_all_entities_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes | Get all Computed Attributes [**get_all_entities_csp_directives**](EntitiesApi.md#get_all_entities_csp_directives) | **GET** /api/v1/entities/cspDirectives | Get CSP Directives [**get_all_entities_custom_application_settings**](EntitiesApi.md#get_all_entities_custom_application_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings | Get all Custom Application Settings [**get_all_entities_custom_geo_collections**](EntitiesApi.md#get_all_entities_custom_geo_collections) | **GET** /api/v1/entities/customGeoCollections | Get all Custom Geo Collections @@ -149,6 +152,7 @@ Method | HTTP request | Description [**get_entity_attributes**](EntitiesApi.md#get_entity_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/attributes/{objectId} | Get an Attribute [**get_entity_automations**](EntitiesApi.md#get_entity_automations) | **GET** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Get an Automation [**get_entity_color_palettes**](EntitiesApi.md#get_entity_color_palettes) | **GET** /api/v1/entities/colorPalettes/{id} | Get Color Pallette +[**get_entity_computed_attributes**](EntitiesApi.md#get_entity_computed_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Get a Computed Attribute [**get_entity_cookie_security_configurations**](EntitiesApi.md#get_entity_cookie_security_configurations) | **GET** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Get CookieSecurityConfiguration [**get_entity_csp_directives**](EntitiesApi.md#get_entity_csp_directives) | **GET** /api/v1/entities/cspDirectives/{id} | Get CSP Directives [**get_entity_custom_application_settings**](EntitiesApi.md#get_entity_custom_application_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings/{objectId} | Get a Custom Application Setting @@ -201,6 +205,7 @@ Method | HTTP request | Description [**patch_entity_attributes**](EntitiesApi.md#patch_entity_attributes) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/attributes/{objectId} | Patch an Attribute (beta) [**patch_entity_automations**](EntitiesApi.md#patch_entity_automations) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Patch an Automation [**patch_entity_color_palettes**](EntitiesApi.md#patch_entity_color_palettes) | **PATCH** /api/v1/entities/colorPalettes/{id} | Patch Color Pallette +[**patch_entity_computed_attributes**](EntitiesApi.md#patch_entity_computed_attributes) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Patch a Computed Attribute [**patch_entity_cookie_security_configurations**](EntitiesApi.md#patch_entity_cookie_security_configurations) | **PATCH** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Patch CookieSecurityConfiguration [**patch_entity_csp_directives**](EntitiesApi.md#patch_entity_csp_directives) | **PATCH** /api/v1/entities/cspDirectives/{id} | Patch CSP Directives [**patch_entity_custom_application_settings**](EntitiesApi.md#patch_entity_custom_application_settings) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings/{objectId} | Patch a Custom Application Setting @@ -243,6 +248,7 @@ Method | HTTP request | Description [**search_entities_attributes**](EntitiesApi.md#search_entities_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/attributes/search | The search endpoint (beta) [**search_entities_automation_results**](EntitiesApi.md#search_entities_automation_results) | **POST** /api/v1/entities/workspaces/{workspaceId}/automationResults/search | The search endpoint (beta) [**search_entities_automations**](EntitiesApi.md#search_entities_automations) | **POST** /api/v1/entities/workspaces/{workspaceId}/automations/search | The search endpoint (beta) +[**search_entities_computed_attributes**](EntitiesApi.md#search_entities_computed_attributes) | **POST** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/search | The search endpoint (beta) [**search_entities_custom_application_settings**](EntitiesApi.md#search_entities_custom_application_settings) | **POST** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings/search | The search endpoint (beta) [**search_entities_dashboard_plugins**](EntitiesApi.md#search_entities_dashboard_plugins) | **POST** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/search | The search endpoint (beta) [**search_entities_datasets**](EntitiesApi.md#search_entities_datasets) | **POST** /api/v1/entities/workspaces/{workspaceId}/datasets/search | The search endpoint (beta) @@ -266,6 +272,7 @@ Method | HTTP request | Description [**update_entity_attribute_hierarchies**](EntitiesApi.md#update_entity_attribute_hierarchies) | **PUT** /api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/{objectId} | Put an Attribute Hierarchy [**update_entity_automations**](EntitiesApi.md#update_entity_automations) | **PUT** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Put an Automation [**update_entity_color_palettes**](EntitiesApi.md#update_entity_color_palettes) | **PUT** /api/v1/entities/colorPalettes/{id} | Put Color Pallette +[**update_entity_computed_attributes**](EntitiesApi.md#update_entity_computed_attributes) | **PUT** /api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId} | Put a Computed Attribute [**update_entity_cookie_security_configurations**](EntitiesApi.md#update_entity_cookie_security_configurations) | **PUT** /api/v1/entities/admin/cookieSecurityConfigurations/{id} | Put CookieSecurityConfiguration [**update_entity_csp_directives**](EntitiesApi.md#update_entity_csp_directives) | **PUT** /api/v1/entities/cspDirectives/{id} | Put CSP Directives [**update_entity_custom_application_settings**](EntitiesApi.md#update_entity_custom_application_settings) | **PUT** /api/v1/entities/workspaces/{workspaceId}/customApplicationSettings/{objectId} | Put a Custom Application Setting @@ -1219,6 +1226,115 @@ No authorization required - **Accept**: application/json, application/vnd.gooddata.api+json +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Request successfully processed | - | + +[[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) + +# **create_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument create_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document) + +Post Computed Attributes + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import entities_api +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from gooddata_api_client.model.json_api_computed_attribute_post_optional_id_document import JsonApiComputedAttributePostOptionalIdDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = entities_api.EntitiesApi(api_client) + workspace_id = "workspaceId_example" # str | + json_api_computed_attribute_post_optional_id_document = JsonApiComputedAttributePostOptionalIdDocument( + data=JsonApiComputedAttributePostOptionalId( + attributes=JsonApiComputedAttributeInAttributes( + are_relations_valid=True, + content=JsonApiComputedAttributeInAttributesContent( + format="format_example", + maql="maql_example", + metric_type="UNSPECIFIED", + ), + data_type="INT", + description="description_example", + is_hidden=True, + is_nullable=True, + locale="locale_example", + null_value="null_value_example", + tags=[ + "tags_example", + ], + title="title_example", + value_type="TEXT", + ), + id="id1", + type="computedAttribute", + ), + ) # JsonApiComputedAttributePostOptionalIdDocument | + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + meta_include = [ + "metaInclude=origin,all", + ] # [str] | Include Meta objects. (optional) + + # example passing only required values which don't have defaults set + try: + # Post Computed Attributes + api_response = api_instance.create_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->create_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Post Computed Attributes + api_response = api_instance.create_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document, include=include, meta_include=meta_include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->create_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **json_api_computed_attribute_post_optional_id_document** | [**JsonApiComputedAttributePostOptionalIdDocument**](JsonApiComputedAttributePostOptionalIdDocument.md)| | + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + **meta_include** | **[str]**| Include Meta objects. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, application/vnd.gooddata.api+json + - **Accept**: application/json, application/vnd.gooddata.api+json + + ### HTTP response details | Status code | Description | Response headers | @@ -2820,7 +2936,7 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiMetricPostOptionalId( attributes=JsonApiMetricInAttributes( are_relations_valid=True, - content=JsonApiMetricInAttributesContent( + content=JsonApiComputedAttributeInAttributesContent( format="format_example", maql="maql_example", metric_type="UNSPECIFIED", @@ -4993,6 +5109,71 @@ No authorization required - **Accept**: Not defined +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | Successfully deleted | - | + +[[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_entity_computed_attributes** +> delete_entity_computed_attributes(workspace_id, object_id) + +Delete a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import entities_api +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = entities_api.EntitiesApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + + # example passing only required values which don't have defaults set + try: + # Delete a Computed Attribute + api_instance.delete_entity_computed_attributes(workspace_id, object_id) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->delete_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + + ### HTTP response details | Status code | Description | Response headers | @@ -8056,6 +8237,102 @@ No authorization required - **Accept**: application/json, application/vnd.gooddata.api+json +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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_all_entities_computed_attributes** +> JsonApiComputedAttributeOutList get_all_entities_computed_attributes(workspace_id) + +Get all Computed Attributes + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import entities_api +from gooddata_api_client.model.json_api_computed_attribute_out_list import JsonApiComputedAttributeOutList +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = entities_api.EntitiesApi(api_client) + workspace_id = "workspaceId_example" # str | + origin = "ALL" # str | (optional) if omitted the server will use the default value of "ALL" + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + page = 0 # int | Zero-based page index (0..N) (optional) if omitted the server will use the default value of 0 + size = 20 # int | The size of the page to be returned (optional) if omitted the server will use the default value of 20 + sort = [ + "sort_example", + ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional) + x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False + meta_include = [ + "metaInclude=origin,page,all", + ] # [str] | Include Meta objects. (optional) + + # example passing only required values which don't have defaults set + try: + # Get all Computed Attributes + api_response = api_instance.get_all_entities_computed_attributes(workspace_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->get_all_entities_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Get all Computed Attributes + api_response = api_instance.get_all_entities_computed_attributes(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations, meta_include=meta_include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->get_all_entities_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL" + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + **page** | **int**| Zero-based page index (0..N) | [optional] if omitted the server will use the default value of 0 + **size** | **int**| The size of the page to be returned | [optional] if omitted the server will use the default value of 20 + **sort** | **[str]**| Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. | [optional] + **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False + **meta_include** | **[str]**| Include Meta objects. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutList**](JsonApiComputedAttributeOutList.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/vnd.gooddata.api+json + + ### HTTP response details | Status code | Description | Response headers | @@ -12613,10 +12890,10 @@ No authorization required [[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_entity_cookie_security_configurations** -> JsonApiCookieSecurityConfigurationOutDocument get_entity_cookie_security_configurations(id) +# **get_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument get_entity_computed_attributes(workspace_id, object_id) -Get CookieSecurityConfiguration +Get a Computed Attribute ### Example @@ -12625,7 +12902,7 @@ Get CookieSecurityConfiguration import time import gooddata_api_client from gooddata_api_client.api import entities_api -from gooddata_api_client.model.json_api_cookie_security_configuration_out_document import JsonApiCookieSecurityConfigurationOutDocument +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument from pprint import pprint # Defining the host is optional and defaults to http://localhost # See configuration.py for a list of all supported configuration parameters. @@ -12638,25 +12915,33 @@ configuration = gooddata_api_client.Configuration( with gooddata_api_client.ApiClient() as api_client: # Create an instance of the API class api_instance = entities_api.EntitiesApi(api_client) - id = "/6bUUGjjNSwg0_bs" # str | - filter = "lastRotation==InstantValue;rotationInterval==DurationValue" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False + meta_include = [ + "metaInclude=origin,all", + ] # [str] | Include Meta objects. (optional) # example passing only required values which don't have defaults set try: - # Get CookieSecurityConfiguration - api_response = api_instance.get_entity_cookie_security_configurations(id) + # Get a Computed Attribute + api_response = api_instance.get_entity_computed_attributes(workspace_id, object_id) pprint(api_response) except gooddata_api_client.ApiException as e: - print("Exception when calling EntitiesApi->get_entity_cookie_security_configurations: %s\n" % e) + print("Exception when calling EntitiesApi->get_entity_computed_attributes: %s\n" % e) # example passing only required values which don't have defaults set # and optional values try: - # Get CookieSecurityConfiguration - api_response = api_instance.get_entity_cookie_security_configurations(id, filter=filter) + # Get a Computed Attribute + api_response = api_instance.get_entity_computed_attributes(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations, meta_include=meta_include) pprint(api_response) except gooddata_api_client.ApiException as e: - print("Exception when calling EntitiesApi->get_entity_cookie_security_configurations: %s\n" % e) + print("Exception when calling EntitiesApi->get_entity_computed_attributes: %s\n" % e) ``` @@ -12664,12 +12949,16 @@ with gooddata_api_client.ApiClient() as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **id** | **str**| | + **workspace_id** | **str**| | + **object_id** | **str**| | **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False + **meta_include** | **[str]**| Include Meta objects. | [optional] ### Return type -[**JsonApiCookieSecurityConfigurationOutDocument**](JsonApiCookieSecurityConfigurationOutDocument.md) +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) ### Authorization @@ -12689,7 +12978,83 @@ No authorization required [[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_entity_csp_directives** +# **get_entity_cookie_security_configurations** +> JsonApiCookieSecurityConfigurationOutDocument get_entity_cookie_security_configurations(id) + +Get CookieSecurityConfiguration + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import entities_api +from gooddata_api_client.model.json_api_cookie_security_configuration_out_document import JsonApiCookieSecurityConfigurationOutDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = entities_api.EntitiesApi(api_client) + id = "/6bUUGjjNSwg0_bs" # str | + filter = "lastRotation==InstantValue;rotationInterval==DurationValue" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + + # example passing only required values which don't have defaults set + try: + # Get CookieSecurityConfiguration + api_response = api_instance.get_entity_cookie_security_configurations(id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->get_entity_cookie_security_configurations: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Get CookieSecurityConfiguration + api_response = api_instance.get_entity_cookie_security_configurations(id, filter=filter) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->get_entity_cookie_security_configurations: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **id** | **str**| | + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + +### Return type + +[**JsonApiCookieSecurityConfigurationOutDocument**](JsonApiCookieSecurityConfigurationOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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_entity_csp_directives** > JsonApiCspDirectiveOutDocument get_entity_csp_directives(id) Get CSP Directives @@ -17268,6 +17633,115 @@ No authorization required - **Accept**: application/json, application/vnd.gooddata.api+json +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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) + +# **patch_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document) + +Patch a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import entities_api +from gooddata_api_client.model.json_api_computed_attribute_patch_document import JsonApiComputedAttributePatchDocument +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = entities_api.EntitiesApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + json_api_computed_attribute_patch_document = JsonApiComputedAttributePatchDocument( + data=JsonApiComputedAttributePatch( + attributes=JsonApiComputedAttributePatchAttributes( + are_relations_valid=True, + content=JsonApiComputedAttributeInAttributesContent( + format="format_example", + maql="maql_example", + metric_type="UNSPECIFIED", + ), + data_type="INT", + description="description_example", + is_hidden=True, + is_nullable=True, + locale="locale_example", + null_value="null_value_example", + tags=[ + "tags_example", + ], + title="title_example", + value_type="TEXT", + ), + id="id1", + type="computedAttribute", + ), + ) # JsonApiComputedAttributePatchDocument | + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + + # example passing only required values which don't have defaults set + try: + # Patch a Computed Attribute + api_response = api_instance.patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->patch_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Patch a Computed Attribute + api_response = api_instance.patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document, filter=filter, include=include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->patch_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + **json_api_computed_attribute_patch_document** | [**JsonApiComputedAttributePatchDocument**](JsonApiComputedAttributePatchDocument.md)| | + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, application/vnd.gooddata.api+json + - **Accept**: application/json, application/vnd.gooddata.api+json + + ### HTTP response details | Status code | Description | Response headers | @@ -19144,7 +19618,7 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiMetricPatch( attributes=JsonApiMetricPatchAttributes( are_relations_valid=True, - content=JsonApiMetricInAttributesContent( + content=JsonApiComputedAttributeInAttributesContent( format="format_example", maql="maql_example", metric_type="UNSPECIFIED", @@ -21535,6 +22009,105 @@ No authorization required - **Accept**: application/json, application/vnd.gooddata.api+json +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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) + +# **search_entities_computed_attributes** +> JsonApiComputedAttributeOutList search_entities_computed_attributes(workspace_id, entity_search_body) + +The search endpoint (beta) + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import entities_api +from gooddata_api_client.model.json_api_computed_attribute_out_list import JsonApiComputedAttributeOutList +from gooddata_api_client.model.entity_search_body import EntitySearchBody +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = entities_api.EntitiesApi(api_client) + workspace_id = "workspaceId_example" # str | + entity_search_body = EntitySearchBody( + filter="filter_example", + include=[ + "include_example", + ], + meta_include=[ + "meta_include_example", + ], + page=EntitySearchPage( + index=0, + size=100, + ), + sort=[ + EntitySearchSort( + direction="ASC", + _property="_property_example", + ), + ], + ) # EntitySearchBody | Search request body with filter, pagination, and sorting options + origin = "ALL" # str | (optional) if omitted the server will use the default value of "ALL" + x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False + + # example passing only required values which don't have defaults set + try: + # The search endpoint (beta) + api_response = api_instance.search_entities_computed_attributes(workspace_id, entity_search_body) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->search_entities_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # The search endpoint (beta) + api_response = api_instance.search_entities_computed_attributes(workspace_id, entity_search_body, origin=origin, x_gdc_validate_relations=x_gdc_validate_relations) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->search_entities_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **entity_search_body** | [**EntitySearchBody**](EntitySearchBody.md)| Search request body with filter, pagination, and sorting options | + **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL" + **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False + +### Return type + +[**JsonApiComputedAttributeOutList**](JsonApiComputedAttributeOutList.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json, application/vnd.gooddata.api+json + + ### HTTP response details | Status code | Description | Response headers | @@ -24087,6 +24660,115 @@ No authorization required - **Accept**: application/json, application/vnd.gooddata.api+json +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[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_entity_computed_attributes** +> JsonApiComputedAttributeOutDocument update_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document) + +Put a Computed Attribute + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import entities_api +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from gooddata_api_client.model.json_api_computed_attribute_in_document import JsonApiComputedAttributeInDocument +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = entities_api.EntitiesApi(api_client) + workspace_id = "workspaceId_example" # str | + object_id = "objectId_example" # str | + json_api_computed_attribute_in_document = JsonApiComputedAttributeInDocument( + data=JsonApiComputedAttributeIn( + attributes=JsonApiComputedAttributeInAttributes( + are_relations_valid=True, + content=JsonApiComputedAttributeInAttributesContent( + format="format_example", + maql="maql_example", + metric_type="UNSPECIFIED", + ), + data_type="INT", + description="description_example", + is_hidden=True, + is_nullable=True, + locale="locale_example", + null_value="null_value_example", + tags=[ + "tags_example", + ], + title="title_example", + value_type="TEXT", + ), + id="id1", + type="computedAttribute", + ), + ) # JsonApiComputedAttributeInDocument | + filter = "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + include = [ + "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", + ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) + + # example passing only required values which don't have defaults set + try: + # Put a Computed Attribute + api_response = api_instance.update_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->update_entity_computed_attributes: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Put a Computed Attribute + api_response = api_instance.update_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document, filter=filter, include=include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling EntitiesApi->update_entity_computed_attributes: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **object_id** | **str**| | + **json_api_computed_attribute_in_document** | [**JsonApiComputedAttributeInDocument**](JsonApiComputedAttributeInDocument.md)| | + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **include** | **[str]**| Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. | [optional] + +### Return type + +[**JsonApiComputedAttributeOutDocument**](JsonApiComputedAttributeOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, application/vnd.gooddata.api+json + - **Accept**: application/json, application/vnd.gooddata.api+json + + ### HTTP response details | Status code | Description | Response headers | @@ -25874,7 +26556,7 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiMetricIn( attributes=JsonApiMetricInAttributes( are_relations_valid=True, - content=JsonApiMetricInAttributesContent( + content=JsonApiComputedAttributeInAttributesContent( format="format_example", maql="maql_example", metric_type="UNSPECIFIED", diff --git a/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutIncludes.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutIncludes.md index d16e2c411..cd80b9364 100644 --- a/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutIncludes.md +++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutIncludes.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **meta** | [**JsonApiAggregatedFactOutMeta**](JsonApiAggregatedFactOutMeta.md) | | [optional] -**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.md) | | [optional] +**relationships** | [**JsonApiComputedAttributeOutRelationships**](JsonApiComputedAttributeOutRelationships.md) | | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] **attributes** | [**JsonApiVisualizationObjectOutAttributes**](JsonApiVisualizationObjectOutAttributes.md) | | [optional] **id** | **str** | API identifier of an object | [optional] diff --git a/gooddata-api-client/docs/JsonApiComputedAttributeIn.md b/gooddata-api-client/docs/JsonApiComputedAttributeIn.md new file mode 100644 index 000000000..23670e99c --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeIn.md @@ -0,0 +1,15 @@ +# JsonApiComputedAttributeIn + +JSON:API representation of computedAttribute entity. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**attributes** | [**JsonApiComputedAttributeInAttributes**](JsonApiComputedAttributeInAttributes.md) | | +**id** | **str** | API identifier of an object | +**type** | **str** | Object type | defaults to "computedAttribute" +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributeInAttributes.md b/gooddata-api-client/docs/JsonApiComputedAttributeInAttributes.md new file mode 100644 index 000000000..f8d32c634 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeInAttributes.md @@ -0,0 +1,22 @@ +# JsonApiComputedAttributeInAttributes + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**content** | [**JsonApiComputedAttributeInAttributesContent**](JsonApiComputedAttributeInAttributesContent.md) | | +**are_relations_valid** | **bool** | | [optional] +**data_type** | **str** | | [optional] +**description** | **str** | | [optional] +**is_hidden** | **bool** | | [optional] +**is_nullable** | **bool** | | [optional] +**locale** | **str** | | [optional] +**null_value** | **str** | | [optional] +**tags** | **[str]** | | [optional] +**title** | **str** | | [optional] +**value_type** | **str** | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiMetricInAttributesContent.md b/gooddata-api-client/docs/JsonApiComputedAttributeInAttributesContent.md similarity index 96% rename from gooddata-api-client/docs/JsonApiMetricInAttributesContent.md rename to gooddata-api-client/docs/JsonApiComputedAttributeInAttributesContent.md index 62406b377..b8d608e06 100644 --- a/gooddata-api-client/docs/JsonApiMetricInAttributesContent.md +++ b/gooddata-api-client/docs/JsonApiComputedAttributeInAttributesContent.md @@ -1,4 +1,4 @@ -# JsonApiMetricInAttributesContent +# JsonApiComputedAttributeInAttributesContent ## Properties diff --git a/gooddata-api-client/docs/JsonApiComputedAttributeInDocument.md b/gooddata-api-client/docs/JsonApiComputedAttributeInDocument.md new file mode 100644 index 000000000..bd50dca8c --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeInDocument.md @@ -0,0 +1,12 @@ +# JsonApiComputedAttributeInDocument + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**JsonApiComputedAttributeIn**](JsonApiComputedAttributeIn.md) | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributeLinkage.md b/gooddata-api-client/docs/JsonApiComputedAttributeLinkage.md new file mode 100644 index 000000000..f52be85e8 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeLinkage.md @@ -0,0 +1,14 @@ +# JsonApiComputedAttributeLinkage + +The \\\"type\\\" and \\\"id\\\" to non-empty members. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | +**type** | **str** | | defaults to "computedAttribute" +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributeOut.md b/gooddata-api-client/docs/JsonApiComputedAttributeOut.md new file mode 100644 index 000000000..74fc31e28 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeOut.md @@ -0,0 +1,17 @@ +# JsonApiComputedAttributeOut + +JSON:API representation of computedAttribute entity. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**attributes** | [**JsonApiComputedAttributeOutAttributes**](JsonApiComputedAttributeOutAttributes.md) | | +**id** | **str** | API identifier of an object | +**type** | **str** | Object type | defaults to "computedAttribute" +**meta** | [**JsonApiAggregatedFactOutMeta**](JsonApiAggregatedFactOutMeta.md) | | [optional] +**relationships** | [**JsonApiComputedAttributeOutRelationships**](JsonApiComputedAttributeOutRelationships.md) | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributeOutAttributes.md b/gooddata-api-client/docs/JsonApiComputedAttributeOutAttributes.md new file mode 100644 index 000000000..7dcca9f73 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeOutAttributes.md @@ -0,0 +1,27 @@ +# JsonApiComputedAttributeOutAttributes + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**content** | [**JsonApiComputedAttributeInAttributesContent**](JsonApiComputedAttributeInAttributesContent.md) | | +**are_relations_valid** | **bool** | | [optional] +**certification** | **str** | Certification status of the entity. | [optional] if omitted the server will use the default value of "CERTIFIED" +**certification_message** | **str, none_type** | Optional message associated with the certification. | [optional] +**certified_at** | **datetime, none_type** | Time when the certification was set. | [optional] +**created_at** | **datetime, none_type** | Time of the entity creation. | [optional] +**data_type** | **str** | | [optional] +**description** | **str** | | [optional] +**is_hidden** | **bool** | | [optional] +**is_nullable** | **bool** | | [optional] +**locale** | **str** | | [optional] +**modified_at** | **datetime, none_type** | Time of the last entity modification. | [optional] +**null_value** | **str** | | [optional] +**tags** | **[str]** | | [optional] +**title** | **str** | | [optional] +**value_type** | **str** | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributeOutDocument.md b/gooddata-api-client/docs/JsonApiComputedAttributeOutDocument.md new file mode 100644 index 000000000..e6385d2cf --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeOutDocument.md @@ -0,0 +1,14 @@ +# JsonApiComputedAttributeOutDocument + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**JsonApiComputedAttributeOut**](JsonApiComputedAttributeOut.md) | | +**included** | [**[JsonApiComputedAttributeOutIncludes]**](JsonApiComputedAttributeOutIncludes.md) | Included resources | [optional] +**links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiMetricOutIncludes.md b/gooddata-api-client/docs/JsonApiComputedAttributeOutIncludes.md similarity index 96% rename from gooddata-api-client/docs/JsonApiMetricOutIncludes.md rename to gooddata-api-client/docs/JsonApiComputedAttributeOutIncludes.md index f1d966152..63e97cd04 100644 --- a/gooddata-api-client/docs/JsonApiMetricOutIncludes.md +++ b/gooddata-api-client/docs/JsonApiComputedAttributeOutIncludes.md @@ -1,4 +1,4 @@ -# JsonApiMetricOutIncludes +# JsonApiComputedAttributeOutIncludes ## Properties diff --git a/gooddata-api-client/docs/JsonApiComputedAttributeOutList.md b/gooddata-api-client/docs/JsonApiComputedAttributeOutList.md new file mode 100644 index 000000000..aee4c9067 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeOutList.md @@ -0,0 +1,16 @@ +# JsonApiComputedAttributeOutList + +A JSON:API document with a list of resources + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**[JsonApiComputedAttributeOutWithLinks]**](JsonApiComputedAttributeOutWithLinks.md) | | +**included** | [**[JsonApiComputedAttributeOutIncludes]**](JsonApiComputedAttributeOutIncludes.md) | Included resources | [optional] +**links** | [**ListLinks**](ListLinks.md) | | [optional] +**meta** | [**JsonApiAgentOutListMeta**](JsonApiAgentOutListMeta.md) | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiMetricOutRelationships.md b/gooddata-api-client/docs/JsonApiComputedAttributeOutRelationships.md similarity index 81% rename from gooddata-api-client/docs/JsonApiMetricOutRelationships.md rename to gooddata-api-client/docs/JsonApiComputedAttributeOutRelationships.md index 38355d4d4..bfa01d107 100644 --- a/gooddata-api-client/docs/JsonApiMetricOutRelationships.md +++ b/gooddata-api-client/docs/JsonApiComputedAttributeOutRelationships.md @@ -1,4 +1,4 @@ -# JsonApiMetricOutRelationships +# JsonApiComputedAttributeOutRelationships ## Properties @@ -6,9 +6,10 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **attributes** | [**JsonApiAttributeHierarchyOutRelationshipsAttributes**](JsonApiAttributeHierarchyOutRelationshipsAttributes.md) | | [optional] **certified_by** | [**JsonApiAgentOutRelationshipsCreatedBy**](JsonApiAgentOutRelationshipsCreatedBy.md) | | [optional] +**computed_attributes** | [**JsonApiComputedAttributeOutRelationshipsComputedAttributes**](JsonApiComputedAttributeOutRelationshipsComputedAttributes.md) | | [optional] **created_by** | [**JsonApiAgentOutRelationshipsCreatedBy**](JsonApiAgentOutRelationshipsCreatedBy.md) | | [optional] **datasets** | [**JsonApiAnalyticalDashboardOutRelationshipsDatasets**](JsonApiAnalyticalDashboardOutRelationshipsDatasets.md) | | [optional] -**facts** | [**JsonApiDatasetOutRelationshipsFacts**](JsonApiDatasetOutRelationshipsFacts.md) | | [optional] +**facts** | [**JsonApiComputedAttributeOutRelationshipsFacts**](JsonApiComputedAttributeOutRelationshipsFacts.md) | | [optional] **labels** | [**JsonApiAnalyticalDashboardOutRelationshipsLabels**](JsonApiAnalyticalDashboardOutRelationshipsLabels.md) | | [optional] **metrics** | [**JsonApiAnalyticalDashboardOutRelationshipsMetrics**](JsonApiAnalyticalDashboardOutRelationshipsMetrics.md) | | [optional] **modified_by** | [**JsonApiAgentOutRelationshipsCreatedBy**](JsonApiAgentOutRelationshipsCreatedBy.md) | | [optional] diff --git a/gooddata-api-client/docs/JsonApiComputedAttributeOutRelationshipsComputedAttributes.md b/gooddata-api-client/docs/JsonApiComputedAttributeOutRelationshipsComputedAttributes.md new file mode 100644 index 000000000..07b172321 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeOutRelationshipsComputedAttributes.md @@ -0,0 +1,12 @@ +# JsonApiComputedAttributeOutRelationshipsComputedAttributes + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**JsonApiComputedAttributeToManyLinkage**](JsonApiComputedAttributeToManyLinkage.md) | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiDatasetOutRelationshipsFacts.md b/gooddata-api-client/docs/JsonApiComputedAttributeOutRelationshipsFacts.md similarity index 91% rename from gooddata-api-client/docs/JsonApiDatasetOutRelationshipsFacts.md rename to gooddata-api-client/docs/JsonApiComputedAttributeOutRelationshipsFacts.md index 3393fb6f5..a6e893f9c 100644 --- a/gooddata-api-client/docs/JsonApiDatasetOutRelationshipsFacts.md +++ b/gooddata-api-client/docs/JsonApiComputedAttributeOutRelationshipsFacts.md @@ -1,4 +1,4 @@ -# JsonApiDatasetOutRelationshipsFacts +# JsonApiComputedAttributeOutRelationshipsFacts ## Properties diff --git a/gooddata-api-client/docs/JsonApiComputedAttributeOutWithLinks.md b/gooddata-api-client/docs/JsonApiComputedAttributeOutWithLinks.md new file mode 100644 index 000000000..b615ed2a1 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeOutWithLinks.md @@ -0,0 +1,17 @@ +# JsonApiComputedAttributeOutWithLinks + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**attributes** | [**JsonApiComputedAttributeOutAttributes**](JsonApiComputedAttributeOutAttributes.md) | | +**id** | **str** | API identifier of an object | +**type** | **str** | Object type | defaults to "computedAttribute" +**meta** | [**JsonApiAggregatedFactOutMeta**](JsonApiAggregatedFactOutMeta.md) | | [optional] +**relationships** | [**JsonApiComputedAttributeOutRelationships**](JsonApiComputedAttributeOutRelationships.md) | | [optional] +**links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributePatch.md b/gooddata-api-client/docs/JsonApiComputedAttributePatch.md new file mode 100644 index 000000000..537915881 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributePatch.md @@ -0,0 +1,15 @@ +# JsonApiComputedAttributePatch + +JSON:API representation of patching computedAttribute entity. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**attributes** | [**JsonApiComputedAttributePatchAttributes**](JsonApiComputedAttributePatchAttributes.md) | | +**id** | **str** | API identifier of an object | +**type** | **str** | Object type | defaults to "computedAttribute" +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributePatchAttributes.md b/gooddata-api-client/docs/JsonApiComputedAttributePatchAttributes.md new file mode 100644 index 000000000..22dc5e941 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributePatchAttributes.md @@ -0,0 +1,22 @@ +# JsonApiComputedAttributePatchAttributes + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**are_relations_valid** | **bool** | | [optional] +**content** | [**JsonApiComputedAttributeInAttributesContent**](JsonApiComputedAttributeInAttributesContent.md) | | [optional] +**data_type** | **str** | | [optional] +**description** | **str** | | [optional] +**is_hidden** | **bool** | | [optional] +**is_nullable** | **bool** | | [optional] +**locale** | **str** | | [optional] +**null_value** | **str** | | [optional] +**tags** | **[str]** | | [optional] +**title** | **str** | | [optional] +**value_type** | **str** | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributePatchDocument.md b/gooddata-api-client/docs/JsonApiComputedAttributePatchDocument.md new file mode 100644 index 000000000..879689a0e --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributePatchDocument.md @@ -0,0 +1,12 @@ +# JsonApiComputedAttributePatchDocument + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**JsonApiComputedAttributePatch**](JsonApiComputedAttributePatch.md) | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributePostOptionalId.md b/gooddata-api-client/docs/JsonApiComputedAttributePostOptionalId.md new file mode 100644 index 000000000..9c9e7742a --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributePostOptionalId.md @@ -0,0 +1,15 @@ +# JsonApiComputedAttributePostOptionalId + +JSON:API representation of computedAttribute entity. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**attributes** | [**JsonApiComputedAttributeInAttributes**](JsonApiComputedAttributeInAttributes.md) | | +**type** | **str** | Object type | defaults to "computedAttribute" +**id** | **str** | API identifier of an object | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributePostOptionalIdDocument.md b/gooddata-api-client/docs/JsonApiComputedAttributePostOptionalIdDocument.md new file mode 100644 index 000000000..2be953fc3 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributePostOptionalIdDocument.md @@ -0,0 +1,12 @@ +# JsonApiComputedAttributePostOptionalIdDocument + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**JsonApiComputedAttributePostOptionalId**](JsonApiComputedAttributePostOptionalId.md) | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiComputedAttributeToManyLinkage.md b/gooddata-api-client/docs/JsonApiComputedAttributeToManyLinkage.md new file mode 100644 index 000000000..7b67f14d1 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiComputedAttributeToManyLinkage.md @@ -0,0 +1,12 @@ +# JsonApiComputedAttributeToManyLinkage + +References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | [**[JsonApiComputedAttributeLinkage]**](JsonApiComputedAttributeLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. | + +[[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/gooddata-api-client/docs/JsonApiDatasetOutRelationships.md b/gooddata-api-client/docs/JsonApiDatasetOutRelationships.md index f88ecb21e..0d71c0e86 100644 --- a/gooddata-api-client/docs/JsonApiDatasetOutRelationships.md +++ b/gooddata-api-client/docs/JsonApiDatasetOutRelationships.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **aggregated_facts** | [**JsonApiDatasetOutRelationshipsAggregatedFacts**](JsonApiDatasetOutRelationshipsAggregatedFacts.md) | | [optional] **attributes** | [**JsonApiAttributeHierarchyOutRelationshipsAttributes**](JsonApiAttributeHierarchyOutRelationshipsAttributes.md) | | [optional] -**facts** | [**JsonApiDatasetOutRelationshipsFacts**](JsonApiDatasetOutRelationshipsFacts.md) | | [optional] +**facts** | [**JsonApiComputedAttributeOutRelationshipsFacts**](JsonApiComputedAttributeOutRelationshipsFacts.md) | | [optional] **references** | [**JsonApiAnalyticalDashboardOutRelationshipsDatasets**](JsonApiAnalyticalDashboardOutRelationshipsDatasets.md) | | [optional] **workspace_data_filters** | [**JsonApiDatasetOutRelationshipsWorkspaceDataFilters**](JsonApiDatasetOutRelationshipsWorkspaceDataFilters.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/JsonApiExportDefinitionOutIncludes.md b/gooddata-api-client/docs/JsonApiExportDefinitionOutIncludes.md index 08508f9d9..89ac594bd 100644 --- a/gooddata-api-client/docs/JsonApiExportDefinitionOutIncludes.md +++ b/gooddata-api-client/docs/JsonApiExportDefinitionOutIncludes.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **meta** | [**JsonApiAggregatedFactOutMeta**](JsonApiAggregatedFactOutMeta.md) | | [optional] -**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.md) | | [optional] +**relationships** | [**JsonApiComputedAttributeOutRelationships**](JsonApiComputedAttributeOutRelationships.md) | | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] **attributes** | [**JsonApiVisualizationObjectOutAttributes**](JsonApiVisualizationObjectOutAttributes.md) | | [optional] **id** | **str** | API identifier of an object | [optional] diff --git a/gooddata-api-client/docs/JsonApiKnowledgeRecommendationOutIncludes.md b/gooddata-api-client/docs/JsonApiKnowledgeRecommendationOutIncludes.md index 9b4bcbdc7..d9dae9021 100644 --- a/gooddata-api-client/docs/JsonApiKnowledgeRecommendationOutIncludes.md +++ b/gooddata-api-client/docs/JsonApiKnowledgeRecommendationOutIncludes.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **meta** | [**JsonApiAggregatedFactOutMeta**](JsonApiAggregatedFactOutMeta.md) | | [optional] -**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.md) | | [optional] +**relationships** | [**JsonApiComputedAttributeOutRelationships**](JsonApiComputedAttributeOutRelationships.md) | | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] **attributes** | [**JsonApiMetricOutAttributes**](JsonApiMetricOutAttributes.md) | | [optional] **id** | **str** | API identifier of an object | [optional] diff --git a/gooddata-api-client/docs/JsonApiMetricInAttributes.md b/gooddata-api-client/docs/JsonApiMetricInAttributes.md index 7ed399db7..6742a0c30 100644 --- a/gooddata-api-client/docs/JsonApiMetricInAttributes.md +++ b/gooddata-api-client/docs/JsonApiMetricInAttributes.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**content** | [**JsonApiMetricInAttributesContent**](JsonApiMetricInAttributesContent.md) | | +**content** | [**JsonApiComputedAttributeInAttributesContent**](JsonApiComputedAttributeInAttributesContent.md) | | **are_relations_valid** | **bool** | | [optional] **description** | **str** | | [optional] **is_hidden** | **bool** | | [optional] diff --git a/gooddata-api-client/docs/JsonApiMetricOut.md b/gooddata-api-client/docs/JsonApiMetricOut.md index 15de82d14..8aea44ada 100644 --- a/gooddata-api-client/docs/JsonApiMetricOut.md +++ b/gooddata-api-client/docs/JsonApiMetricOut.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "metric" **meta** | [**JsonApiAggregatedFactOutMeta**](JsonApiAggregatedFactOutMeta.md) | | [optional] -**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.md) | | [optional] +**relationships** | [**JsonApiComputedAttributeOutRelationships**](JsonApiComputedAttributeOutRelationships.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiMetricOutAttributes.md b/gooddata-api-client/docs/JsonApiMetricOutAttributes.md index fb550c7df..4bef7bdf6 100644 --- a/gooddata-api-client/docs/JsonApiMetricOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiMetricOutAttributes.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**content** | [**JsonApiMetricInAttributesContent**](JsonApiMetricInAttributesContent.md) | | +**content** | [**JsonApiComputedAttributeInAttributesContent**](JsonApiComputedAttributeInAttributesContent.md) | | **are_relations_valid** | **bool** | | [optional] **certification** | **str** | Certification status of the entity. | [optional] if omitted the server will use the default value of "CERTIFIED" **certification_message** | **str, none_type** | Optional message associated with the certification. | [optional] diff --git a/gooddata-api-client/docs/JsonApiMetricOutDocument.md b/gooddata-api-client/docs/JsonApiMetricOutDocument.md index 85d95f58b..cf2b91640 100644 --- a/gooddata-api-client/docs/JsonApiMetricOutDocument.md +++ b/gooddata-api-client/docs/JsonApiMetricOutDocument.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data** | [**JsonApiMetricOut**](JsonApiMetricOut.md) | | -**included** | [**[JsonApiMetricOutIncludes]**](JsonApiMetricOutIncludes.md) | Included resources | [optional] +**included** | [**[JsonApiComputedAttributeOutIncludes]**](JsonApiComputedAttributeOutIncludes.md) | Included resources | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/JsonApiMetricOutList.md b/gooddata-api-client/docs/JsonApiMetricOutList.md index 9a24bf3c6..b6a7220c8 100644 --- a/gooddata-api-client/docs/JsonApiMetricOutList.md +++ b/gooddata-api-client/docs/JsonApiMetricOutList.md @@ -6,7 +6,7 @@ A JSON:API document with a list of resources Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data** | [**[JsonApiMetricOutWithLinks]**](JsonApiMetricOutWithLinks.md) | | -**included** | [**[JsonApiMetricOutIncludes]**](JsonApiMetricOutIncludes.md) | Included resources | [optional] +**included** | [**[JsonApiComputedAttributeOutIncludes]**](JsonApiComputedAttributeOutIncludes.md) | Included resources | [optional] **links** | [**ListLinks**](ListLinks.md) | | [optional] **meta** | [**JsonApiAgentOutListMeta**](JsonApiAgentOutListMeta.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/JsonApiMetricOutWithLinks.md b/gooddata-api-client/docs/JsonApiMetricOutWithLinks.md index 9e5f39acd..535ba4ad9 100644 --- a/gooddata-api-client/docs/JsonApiMetricOutWithLinks.md +++ b/gooddata-api-client/docs/JsonApiMetricOutWithLinks.md @@ -8,7 +8,7 @@ Name | Type | Description | Notes **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "metric" **meta** | [**JsonApiAggregatedFactOutMeta**](JsonApiAggregatedFactOutMeta.md) | | [optional] -**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.md) | | [optional] +**relationships** | [**JsonApiComputedAttributeOutRelationships**](JsonApiComputedAttributeOutRelationships.md) | | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/JsonApiMetricPatchAttributes.md b/gooddata-api-client/docs/JsonApiMetricPatchAttributes.md index 81bc171e8..a020ca2d5 100644 --- a/gooddata-api-client/docs/JsonApiMetricPatchAttributes.md +++ b/gooddata-api-client/docs/JsonApiMetricPatchAttributes.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **are_relations_valid** | **bool** | | [optional] -**content** | [**JsonApiMetricInAttributesContent**](JsonApiMetricInAttributesContent.md) | | [optional] +**content** | [**JsonApiComputedAttributeInAttributesContent**](JsonApiComputedAttributeInAttributesContent.md) | | [optional] **description** | **str** | | [optional] **is_hidden** | **bool** | | [optional] **is_hidden_from_kda** | **bool** | | [optional] diff --git a/gooddata-api-client/docs/JsonApiUserDataFilterOutRelationships.md b/gooddata-api-client/docs/JsonApiUserDataFilterOutRelationships.md index d9a9ade01..b93ed2a71 100644 --- a/gooddata-api-client/docs/JsonApiUserDataFilterOutRelationships.md +++ b/gooddata-api-client/docs/JsonApiUserDataFilterOutRelationships.md @@ -5,8 +5,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **attributes** | [**JsonApiAttributeHierarchyOutRelationshipsAttributes**](JsonApiAttributeHierarchyOutRelationshipsAttributes.md) | | [optional] +**computed_attributes** | [**JsonApiComputedAttributeOutRelationshipsComputedAttributes**](JsonApiComputedAttributeOutRelationshipsComputedAttributes.md) | | [optional] **datasets** | [**JsonApiAnalyticalDashboardOutRelationshipsDatasets**](JsonApiAnalyticalDashboardOutRelationshipsDatasets.md) | | [optional] -**facts** | [**JsonApiDatasetOutRelationshipsFacts**](JsonApiDatasetOutRelationshipsFacts.md) | | [optional] +**facts** | [**JsonApiComputedAttributeOutRelationshipsFacts**](JsonApiComputedAttributeOutRelationshipsFacts.md) | | [optional] **labels** | [**JsonApiAnalyticalDashboardOutRelationshipsLabels**](JsonApiAnalyticalDashboardOutRelationshipsLabels.md) | | [optional] **metrics** | [**JsonApiAnalyticalDashboardOutRelationshipsMetrics**](JsonApiAnalyticalDashboardOutRelationshipsMetrics.md) | | [optional] **parameters** | [**JsonApiAnalyticalDashboardOutRelationshipsParameters**](JsonApiAnalyticalDashboardOutRelationshipsParameters.md) | | [optional] diff --git a/gooddata-api-client/docs/JsonApiVisualizationObjectOut.md b/gooddata-api-client/docs/JsonApiVisualizationObjectOut.md index 0b593f8eb..e9d724203 100644 --- a/gooddata-api-client/docs/JsonApiVisualizationObjectOut.md +++ b/gooddata-api-client/docs/JsonApiVisualizationObjectOut.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "visualizationObject" **meta** | [**JsonApiAggregatedFactOutMeta**](JsonApiAggregatedFactOutMeta.md) | | [optional] -**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.md) | | [optional] +**relationships** | [**JsonApiComputedAttributeOutRelationships**](JsonApiComputedAttributeOutRelationships.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/JsonApiVisualizationObjectOutDocument.md b/gooddata-api-client/docs/JsonApiVisualizationObjectOutDocument.md index 72ed05614..9a1402451 100644 --- a/gooddata-api-client/docs/JsonApiVisualizationObjectOutDocument.md +++ b/gooddata-api-client/docs/JsonApiVisualizationObjectOutDocument.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data** | [**JsonApiVisualizationObjectOut**](JsonApiVisualizationObjectOut.md) | | -**included** | [**[JsonApiMetricOutIncludes]**](JsonApiMetricOutIncludes.md) | Included resources | [optional] +**included** | [**[JsonApiComputedAttributeOutIncludes]**](JsonApiComputedAttributeOutIncludes.md) | Included resources | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/JsonApiVisualizationObjectOutList.md b/gooddata-api-client/docs/JsonApiVisualizationObjectOutList.md index bb5a54f73..519ddca40 100644 --- a/gooddata-api-client/docs/JsonApiVisualizationObjectOutList.md +++ b/gooddata-api-client/docs/JsonApiVisualizationObjectOutList.md @@ -6,7 +6,7 @@ A JSON:API document with a list of resources Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data** | [**[JsonApiVisualizationObjectOutWithLinks]**](JsonApiVisualizationObjectOutWithLinks.md) | | -**included** | [**[JsonApiMetricOutIncludes]**](JsonApiMetricOutIncludes.md) | Included resources | [optional] +**included** | [**[JsonApiComputedAttributeOutIncludes]**](JsonApiComputedAttributeOutIncludes.md) | Included resources | [optional] **links** | [**ListLinks**](ListLinks.md) | | [optional] **meta** | [**JsonApiAgentOutListMeta**](JsonApiAgentOutListMeta.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/JsonApiVisualizationObjectOutWithLinks.md b/gooddata-api-client/docs/JsonApiVisualizationObjectOutWithLinks.md index bfc02c912..d063da81b 100644 --- a/gooddata-api-client/docs/JsonApiVisualizationObjectOutWithLinks.md +++ b/gooddata-api-client/docs/JsonApiVisualizationObjectOutWithLinks.md @@ -8,7 +8,7 @@ Name | Type | Description | Notes **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "visualizationObject" **meta** | [**JsonApiAggregatedFactOutMeta**](JsonApiAggregatedFactOutMeta.md) | | [optional] -**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.md) | | [optional] +**relationships** | [**JsonApiComputedAttributeOutRelationships**](JsonApiComputedAttributeOutRelationships.md) | | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/LayoutApi.md b/gooddata-api-client/docs/LayoutApi.md index 00d5029a6..685af93ee 100644 --- a/gooddata-api-client/docs/LayoutApi.md +++ b/gooddata-api-client/docs/LayoutApi.md @@ -2356,6 +2356,42 @@ with gooddata_api_client.ApiClient() as api_client: title="Count of goods", ), ], + computed_attributes=[ + DeclarativeComputedAttribute( + certification="CERTIFIED", + certification_message="certification_message_example", + certified_at="0480-72-88 80:01", + certified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + content=DeclarativeComputedAttributeContent( + format="%0.2f", + maql="SELECT 1", + metric_type="UNSPECIFIED", + ), + created_at="2023-07-20 12:30", + created_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + data_type="STRING", + description="Sales for all the data available.", + id="total-sales", + is_hidden=False, + is_nullable=False, + locale="en-US", + modified_at="2023-07-20 12:30", + modified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + null_value="empty_value", + tags=["Revenues"], + title="Total sales", + value_type="TEXT", + ), + ], dashboard_plugins=[ DeclarativeDashboardPlugin( content=JsonNode(), @@ -2917,6 +2953,42 @@ with gooddata_api_client.ApiClient() as api_client: title="Count of goods", ), ], + computed_attributes=[ + DeclarativeComputedAttribute( + certification="CERTIFIED", + certification_message="certification_message_example", + certified_at="0480-72-88 80:01", + certified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + content=DeclarativeComputedAttributeContent( + format="%0.2f", + maql="SELECT 1", + metric_type="UNSPECIFIED", + ), + created_at="2023-07-20 12:30", + created_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + data_type="STRING", + description="Sales for all the data available.", + id="total-sales", + is_hidden=False, + is_nullable=False, + locale="en-US", + modified_at="2023-07-20 12:30", + modified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + null_value="empty_value", + tags=["Revenues"], + title="Total sales", + value_type="TEXT", + ), + ], dashboard_plugins=[ DeclarativeDashboardPlugin( content=JsonNode(), @@ -5188,6 +5260,42 @@ with gooddata_api_client.ApiClient() as api_client: title="Count of goods", ), ], + computed_attributes=[ + DeclarativeComputedAttribute( + certification="CERTIFIED", + certification_message="certification_message_example", + certified_at="0480-72-88 80:01", + certified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + content=DeclarativeComputedAttributeContent( + format="%0.2f", + maql="SELECT 1", + metric_type="UNSPECIFIED", + ), + created_at="2023-07-20 12:30", + created_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + data_type="STRING", + description="Sales for all the data available.", + id="total-sales", + is_hidden=False, + is_nullable=False, + locale="en-US", + modified_at="2023-07-20 12:30", + modified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + null_value="empty_value", + tags=["Revenues"], + title="Total sales", + value_type="TEXT", + ), + ], dashboard_plugins=[ DeclarativeDashboardPlugin( content=JsonNode(), @@ -6674,6 +6782,42 @@ with gooddata_api_client.ApiClient() as api_client: title="Count of goods", ), ], + computed_attributes=[ + DeclarativeComputedAttribute( + certification="CERTIFIED", + certification_message="certification_message_example", + certified_at="0480-72-88 80:01", + certified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + content=DeclarativeComputedAttributeContent( + format="%0.2f", + maql="SELECT 1", + metric_type="UNSPECIFIED", + ), + created_at="2023-07-20 12:30", + created_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + data_type="STRING", + description="Sales for all the data available.", + id="total-sales", + is_hidden=False, + is_nullable=False, + locale="en-US", + modified_at="2023-07-20 12:30", + modified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + null_value="empty_value", + tags=["Revenues"], + title="Total sales", + value_type="TEXT", + ), + ], dashboard_plugins=[ DeclarativeDashboardPlugin( content=JsonNode(), diff --git a/gooddata-api-client/docs/MetricControllerApi.md b/gooddata-api-client/docs/MetricControllerApi.md index 5ee62007b..250e98cc6 100644 --- a/gooddata-api-client/docs/MetricControllerApi.md +++ b/gooddata-api-client/docs/MetricControllerApi.md @@ -44,7 +44,7 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiMetricPostOptionalId( attributes=JsonApiMetricInAttributes( are_relations_valid=True, - content=JsonApiMetricInAttributesContent( + content=JsonApiComputedAttributeInAttributesContent( format="format_example", maql="maql_example", metric_type="UNSPECIFIED", @@ -399,7 +399,7 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiMetricPatch( attributes=JsonApiMetricPatchAttributes( are_relations_valid=True, - content=JsonApiMetricInAttributesContent( + content=JsonApiComputedAttributeInAttributesContent( format="format_example", maql="maql_example", metric_type="UNSPECIFIED", @@ -603,7 +603,7 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiMetricIn( attributes=JsonApiMetricInAttributes( are_relations_valid=True, - content=JsonApiMetricInAttributesContent( + content=JsonApiComputedAttributeInAttributesContent( format="format_example", maql="maql_example", metric_type="UNSPECIFIED", diff --git a/gooddata-api-client/docs/MetricsApi.md b/gooddata-api-client/docs/MetricsApi.md index 3ff19675f..733935e3e 100644 --- a/gooddata-api-client/docs/MetricsApi.md +++ b/gooddata-api-client/docs/MetricsApi.md @@ -44,7 +44,7 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiMetricPostOptionalId( attributes=JsonApiMetricInAttributes( are_relations_valid=True, - content=JsonApiMetricInAttributesContent( + content=JsonApiComputedAttributeInAttributesContent( format="format_example", maql="maql_example", metric_type="UNSPECIFIED", @@ -399,7 +399,7 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiMetricPatch( attributes=JsonApiMetricPatchAttributes( are_relations_valid=True, - content=JsonApiMetricInAttributesContent( + content=JsonApiComputedAttributeInAttributesContent( format="format_example", maql="maql_example", metric_type="UNSPECIFIED", @@ -603,7 +603,7 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiMetricIn( attributes=JsonApiMetricInAttributes( are_relations_valid=True, - content=JsonApiMetricInAttributesContent( + content=JsonApiComputedAttributeInAttributesContent( format="format_example", maql="maql_example", metric_type="UNSPECIFIED", diff --git a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md index 9fdf84cdc..86069db62 100644 --- a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md @@ -1267,6 +1267,42 @@ with gooddata_api_client.ApiClient() as api_client: title="Count of goods", ), ], + computed_attributes=[ + DeclarativeComputedAttribute( + certification="CERTIFIED", + certification_message="certification_message_example", + certified_at="0480-72-88 80:01", + certified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + content=DeclarativeComputedAttributeContent( + format="%0.2f", + maql="SELECT 1", + metric_type="UNSPECIFIED", + ), + created_at="2023-07-20 12:30", + created_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + data_type="STRING", + description="Sales for all the data available.", + id="total-sales", + is_hidden=False, + is_nullable=False, + locale="en-US", + modified_at="2023-07-20 12:30", + modified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + null_value="empty_value", + tags=["Revenues"], + title="Total sales", + value_type="TEXT", + ), + ], dashboard_plugins=[ DeclarativeDashboardPlugin( content=JsonNode(), diff --git a/gooddata-api-client/docs/ValidateByItem.md b/gooddata-api-client/docs/ValidateByItem.md index 92021ad07..2c4af5ac3 100644 --- a/gooddata-api-client/docs/ValidateByItem.md +++ b/gooddata-api-client/docs/ValidateByItem.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **str** | Specifies entity used for valid elements computation. | -**type** | **str** | Specifies entity type which could be label, attribute, fact, or metric. | +**type** | **str** | Specifies entity type which could be label, attribute, computedAttribute, fact, or metric. | **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct 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/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md b/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md index c92fb0ba0..a46a5cc95 100644 --- a/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md @@ -247,6 +247,42 @@ with gooddata_api_client.ApiClient() as api_client: title="Count of goods", ), ], + computed_attributes=[ + DeclarativeComputedAttribute( + certification="CERTIFIED", + certification_message="certification_message_example", + certified_at="0480-72-88 80:01", + certified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + content=DeclarativeComputedAttributeContent( + format="%0.2f", + maql="SELECT 1", + metric_type="UNSPECIFIED", + ), + created_at="2023-07-20 12:30", + created_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + data_type="STRING", + description="Sales for all the data available.", + id="total-sales", + is_hidden=False, + is_nullable=False, + locale="en-US", + modified_at="2023-07-20 12:30", + modified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + null_value="empty_value", + tags=["Revenues"], + title="Total sales", + value_type="TEXT", + ), + ], dashboard_plugins=[ DeclarativeDashboardPlugin( content=JsonNode(), @@ -1191,6 +1227,42 @@ with gooddata_api_client.ApiClient() as api_client: title="Count of goods", ), ], + computed_attributes=[ + DeclarativeComputedAttribute( + certification="CERTIFIED", + certification_message="certification_message_example", + certified_at="0480-72-88 80:01", + certified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + content=DeclarativeComputedAttributeContent( + format="%0.2f", + maql="SELECT 1", + metric_type="UNSPECIFIED", + ), + created_at="2023-07-20 12:30", + created_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + data_type="STRING", + description="Sales for all the data available.", + id="total-sales", + is_hidden=False, + is_nullable=False, + locale="en-US", + modified_at="2023-07-20 12:30", + modified_by=DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + null_value="empty_value", + tags=["Revenues"], + title="Total sales", + value_type="TEXT", + ), + ], dashboard_plugins=[ DeclarativeDashboardPlugin( content=JsonNode(), diff --git a/gooddata-api-client/gooddata_api_client/api/computed_attribute_controller_api.py b/gooddata-api-client/gooddata_api_client/api/computed_attribute_controller_api.py new file mode 100644 index 000000000..2eb23a8a1 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/api/computed_attribute_controller_api.py @@ -0,0 +1,1309 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.api_client import ApiClient, Endpoint as _Endpoint +from gooddata_api_client.model_utils import ( # noqa: F401 + check_allowed_values, + check_validations, + date, + datetime, + file_type, + none_type, + validate_and_convert_types +) +from gooddata_api_client.model.entity_search_body import EntitySearchBody +from gooddata_api_client.model.json_api_computed_attribute_in_document import JsonApiComputedAttributeInDocument +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from gooddata_api_client.model.json_api_computed_attribute_out_list import JsonApiComputedAttributeOutList +from gooddata_api_client.model.json_api_computed_attribute_patch_document import JsonApiComputedAttributePatchDocument +from gooddata_api_client.model.json_api_computed_attribute_post_optional_id_document import JsonApiComputedAttributePostOptionalIdDocument + + +class ComputedAttributeControllerApi(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 + self.create_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes', + 'operation_id': 'create_entity_computed_attributes', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'json_api_computed_attribute_post_optional_id_document', + 'include', + 'meta_include', + ], + 'required': [ + 'workspace_id', + 'json_api_computed_attribute_post_optional_id_document', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + 'meta_include', + ], + 'validation': [ + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + ('meta_include',): { + + "ORIGIN": "origin", + "ALL": "all", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'json_api_computed_attribute_post_optional_id_document': + (JsonApiComputedAttributePostOptionalIdDocument,), + 'include': + ([str],), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'include': 'include', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'workspace_id': 'path', + 'json_api_computed_attribute_post_optional_id_document': 'body', + 'include': 'query', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + 'meta_include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ] + }, + api_client=api_client + ) + self.delete_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'delete_entity_computed_attributes', + 'http_method': 'DELETE', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + ], + 'required': [ + 'workspace_id', + 'object_id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [], + }, + api_client=api_client + ) + self.get_all_entities_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutList,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes', + 'operation_id': 'get_all_entities_computed_attributes', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'origin', + 'filter', + 'include', + 'page', + 'size', + 'sort', + 'x_gdc_validate_relations', + 'meta_include', + ], + 'required': [ + 'workspace_id', + ], + 'nullable': [ + ], + 'enum': [ + 'origin', + 'include', + 'meta_include', + ], + 'validation': [ + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('origin',): { + + "ALL": "ALL", + "PARENTS": "PARENTS", + "NATIVE": "NATIVE" + }, + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + ('meta_include',): { + + "ORIGIN": "origin", + "PAGE": "page", + "ALL": "all", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'origin': + (str,), + 'filter': + (str,), + 'include': + ([str],), + 'page': + (int,), + 'size': + (int,), + 'sort': + ([str],), + 'x_gdc_validate_relations': + (bool,), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'origin': 'origin', + 'filter': 'filter', + 'include': 'include', + 'page': 'page', + 'size': 'size', + 'sort': 'sort', + 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'workspace_id': 'path', + 'origin': 'query', + 'filter': 'query', + 'include': 'query', + 'page': 'query', + 'size': 'query', + 'sort': 'query', + 'x_gdc_validate_relations': 'header', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + 'sort': 'multi', + 'meta_include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [], + }, + api_client=api_client + ) + self.get_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'get_entity_computed_attributes', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + 'filter', + 'include', + 'x_gdc_validate_relations', + 'meta_include', + ], + 'required': [ + 'workspace_id', + 'object_id', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + 'meta_include', + ], + 'validation': [ + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + ('meta_include',): { + + "ORIGIN": "origin", + "ALL": "all", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + 'filter': + (str,), + 'include': + ([str],), + 'x_gdc_validate_relations': + (bool,), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + 'filter': 'filter', + 'include': 'include', + 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + 'filter': 'query', + 'include': 'query', + 'x_gdc_validate_relations': 'header', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + 'meta_include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [], + }, + api_client=api_client + ) + self.patch_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'patch_entity_computed_attributes', + 'http_method': 'PATCH', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_patch_document', + 'filter', + 'include', + ], + 'required': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_patch_document', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + 'json_api_computed_attribute_patch_document': + (JsonApiComputedAttributePatchDocument,), + 'filter': + (str,), + 'include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + 'filter': 'filter', + 'include': 'include', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + 'json_api_computed_attribute_patch_document': 'body', + 'filter': 'query', + 'include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ] + }, + api_client=api_client + ) + self.search_entities_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutList,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/search', + 'operation_id': 'search_entities_computed_attributes', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'entity_search_body', + 'origin', + 'x_gdc_validate_relations', + ], + 'required': [ + 'workspace_id', + 'entity_search_body', + ], + 'nullable': [ + ], + 'enum': [ + 'origin', + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + ('origin',): { + + "ALL": "ALL", + "PARENTS": "PARENTS", + "NATIVE": "NATIVE" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'entity_search_body': + (EntitySearchBody,), + 'origin': + (str,), + 'x_gdc_validate_relations': + (bool,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'origin': 'origin', + 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS', + }, + 'location_map': { + 'workspace_id': 'path', + 'entity_search_body': 'body', + 'origin': 'query', + 'x_gdc_validate_relations': 'header', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) + self.update_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'update_entity_computed_attributes', + 'http_method': 'PUT', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_in_document', + 'filter', + 'include', + ], + 'required': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_in_document', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + 'json_api_computed_attribute_in_document': + (JsonApiComputedAttributeInDocument,), + 'filter': + (str,), + 'include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + 'filter': 'filter', + 'include': 'include', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + 'json_api_computed_attribute_in_document': 'body', + 'filter': 'query', + 'include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ] + }, + api_client=api_client + ) + + def create_entity_computed_attributes( + self, + workspace_id, + json_api_computed_attribute_post_optional_id_document, + **kwargs + ): + """Post Computed Attributes # 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_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + json_api_computed_attribute_post_optional_id_document (JsonApiComputedAttributePostOptionalIdDocument): + + Keyword Args: + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + meta_include ([str]): Include Meta objects.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['json_api_computed_attribute_post_optional_id_document'] = \ + json_api_computed_attribute_post_optional_id_document + return self.create_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def delete_entity_computed_attributes( + self, + workspace_id, + object_id, + **kwargs + ): + """Delete a Computed Attribute # 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_entity_computed_attributes(workspace_id, object_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + return self.delete_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def get_all_entities_computed_attributes( + self, + workspace_id, + **kwargs + ): + """Get all Computed Attributes # 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_all_entities_computed_attributes(workspace_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + + Keyword Args: + origin (str): [optional] if omitted the server will use the default value of "ALL" + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + page (int): Zero-based page index (0..N). [optional] if omitted the server will use the default value of 0 + size (int): The size of the page to be returned. [optional] if omitted the server will use the default value of 20 + sort ([str]): Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.. [optional] + x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False + meta_include ([str]): Include Meta objects.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutList + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + return self.get_all_entities_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def get_entity_computed_attributes( + self, + workspace_id, + object_id, + **kwargs + ): + """Get a Computed Attribute # 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_entity_computed_attributes(workspace_id, object_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False + meta_include ([str]): Include Meta objects.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + return self.get_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def patch_entity_computed_attributes( + self, + workspace_id, + object_id, + json_api_computed_attribute_patch_document, + **kwargs + ): + """Patch a Computed Attribute # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + json_api_computed_attribute_patch_document (JsonApiComputedAttributePatchDocument): + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + kwargs['json_api_computed_attribute_patch_document'] = \ + json_api_computed_attribute_patch_document + return self.patch_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def search_entities_computed_attributes( + self, + workspace_id, + entity_search_body, + **kwargs + ): + """The search endpoint (beta) # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.search_entities_computed_attributes(workspace_id, entity_search_body, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + entity_search_body (EntitySearchBody): Search request body with filter, pagination, and sorting options + + Keyword Args: + origin (str): [optional] if omitted the server will use the default value of "ALL" + x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutList + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['entity_search_body'] = \ + entity_search_body + return self.search_entities_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def update_entity_computed_attributes( + self, + workspace_id, + object_id, + json_api_computed_attribute_in_document, + **kwargs + ): + """Put a Computed Attribute # 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_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + json_api_computed_attribute_in_document (JsonApiComputedAttributeInDocument): + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + kwargs['json_api_computed_attribute_in_document'] = \ + json_api_computed_attribute_in_document + return self.update_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + diff --git a/gooddata-api-client/gooddata_api_client/api/computed_attributes_api.py b/gooddata-api-client/gooddata_api_client/api/computed_attributes_api.py new file mode 100644 index 000000000..07cb84078 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/api/computed_attributes_api.py @@ -0,0 +1,1309 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.api_client import ApiClient, Endpoint as _Endpoint +from gooddata_api_client.model_utils import ( # noqa: F401 + check_allowed_values, + check_validations, + date, + datetime, + file_type, + none_type, + validate_and_convert_types +) +from gooddata_api_client.model.entity_search_body import EntitySearchBody +from gooddata_api_client.model.json_api_computed_attribute_in_document import JsonApiComputedAttributeInDocument +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from gooddata_api_client.model.json_api_computed_attribute_out_list import JsonApiComputedAttributeOutList +from gooddata_api_client.model.json_api_computed_attribute_patch_document import JsonApiComputedAttributePatchDocument +from gooddata_api_client.model.json_api_computed_attribute_post_optional_id_document import JsonApiComputedAttributePostOptionalIdDocument + + +class ComputedAttributesApi(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 + self.create_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes', + 'operation_id': 'create_entity_computed_attributes', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'json_api_computed_attribute_post_optional_id_document', + 'include', + 'meta_include', + ], + 'required': [ + 'workspace_id', + 'json_api_computed_attribute_post_optional_id_document', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + 'meta_include', + ], + 'validation': [ + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + ('meta_include',): { + + "ORIGIN": "origin", + "ALL": "all", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'json_api_computed_attribute_post_optional_id_document': + (JsonApiComputedAttributePostOptionalIdDocument,), + 'include': + ([str],), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'include': 'include', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'workspace_id': 'path', + 'json_api_computed_attribute_post_optional_id_document': 'body', + 'include': 'query', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + 'meta_include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ] + }, + api_client=api_client + ) + self.delete_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'delete_entity_computed_attributes', + 'http_method': 'DELETE', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + ], + 'required': [ + 'workspace_id', + 'object_id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [], + }, + api_client=api_client + ) + self.get_all_entities_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutList,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes', + 'operation_id': 'get_all_entities_computed_attributes', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'origin', + 'filter', + 'include', + 'page', + 'size', + 'sort', + 'x_gdc_validate_relations', + 'meta_include', + ], + 'required': [ + 'workspace_id', + ], + 'nullable': [ + ], + 'enum': [ + 'origin', + 'include', + 'meta_include', + ], + 'validation': [ + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('origin',): { + + "ALL": "ALL", + "PARENTS": "PARENTS", + "NATIVE": "NATIVE" + }, + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + ('meta_include',): { + + "ORIGIN": "origin", + "PAGE": "page", + "ALL": "all", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'origin': + (str,), + 'filter': + (str,), + 'include': + ([str],), + 'page': + (int,), + 'size': + (int,), + 'sort': + ([str],), + 'x_gdc_validate_relations': + (bool,), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'origin': 'origin', + 'filter': 'filter', + 'include': 'include', + 'page': 'page', + 'size': 'size', + 'sort': 'sort', + 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'workspace_id': 'path', + 'origin': 'query', + 'filter': 'query', + 'include': 'query', + 'page': 'query', + 'size': 'query', + 'sort': 'query', + 'x_gdc_validate_relations': 'header', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + 'sort': 'multi', + 'meta_include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [], + }, + api_client=api_client + ) + self.get_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'get_entity_computed_attributes', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + 'filter', + 'include', + 'x_gdc_validate_relations', + 'meta_include', + ], + 'required': [ + 'workspace_id', + 'object_id', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + 'meta_include', + ], + 'validation': [ + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + ('meta_include',): { + + "ORIGIN": "origin", + "ALL": "all", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + 'filter': + (str,), + 'include': + ([str],), + 'x_gdc_validate_relations': + (bool,), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + 'filter': 'filter', + 'include': 'include', + 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + 'filter': 'query', + 'include': 'query', + 'x_gdc_validate_relations': 'header', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + 'meta_include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [], + }, + api_client=api_client + ) + self.patch_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'patch_entity_computed_attributes', + 'http_method': 'PATCH', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_patch_document', + 'filter', + 'include', + ], + 'required': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_patch_document', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + 'json_api_computed_attribute_patch_document': + (JsonApiComputedAttributePatchDocument,), + 'filter': + (str,), + 'include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + 'filter': 'filter', + 'include': 'include', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + 'json_api_computed_attribute_patch_document': 'body', + 'filter': 'query', + 'include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ] + }, + api_client=api_client + ) + self.search_entities_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutList,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/search', + 'operation_id': 'search_entities_computed_attributes', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'entity_search_body', + 'origin', + 'x_gdc_validate_relations', + ], + 'required': [ + 'workspace_id', + 'entity_search_body', + ], + 'nullable': [ + ], + 'enum': [ + 'origin', + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + ('origin',): { + + "ALL": "ALL", + "PARENTS": "PARENTS", + "NATIVE": "NATIVE" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'entity_search_body': + (EntitySearchBody,), + 'origin': + (str,), + 'x_gdc_validate_relations': + (bool,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'origin': 'origin', + 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS', + }, + 'location_map': { + 'workspace_id': 'path', + 'entity_search_body': 'body', + 'origin': 'query', + 'x_gdc_validate_relations': 'header', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) + self.update_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'update_entity_computed_attributes', + 'http_method': 'PUT', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_in_document', + 'filter', + 'include', + ], + 'required': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_in_document', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + 'json_api_computed_attribute_in_document': + (JsonApiComputedAttributeInDocument,), + 'filter': + (str,), + 'include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + 'filter': 'filter', + 'include': 'include', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + 'json_api_computed_attribute_in_document': 'body', + 'filter': 'query', + 'include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ] + }, + api_client=api_client + ) + + def create_entity_computed_attributes( + self, + workspace_id, + json_api_computed_attribute_post_optional_id_document, + **kwargs + ): + """Post Computed Attributes # 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_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + json_api_computed_attribute_post_optional_id_document (JsonApiComputedAttributePostOptionalIdDocument): + + Keyword Args: + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + meta_include ([str]): Include Meta objects.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['json_api_computed_attribute_post_optional_id_document'] = \ + json_api_computed_attribute_post_optional_id_document + return self.create_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def delete_entity_computed_attributes( + self, + workspace_id, + object_id, + **kwargs + ): + """Delete a Computed Attribute # 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_entity_computed_attributes(workspace_id, object_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + return self.delete_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def get_all_entities_computed_attributes( + self, + workspace_id, + **kwargs + ): + """Get all Computed Attributes # 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_all_entities_computed_attributes(workspace_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + + Keyword Args: + origin (str): [optional] if omitted the server will use the default value of "ALL" + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + page (int): Zero-based page index (0..N). [optional] if omitted the server will use the default value of 0 + size (int): The size of the page to be returned. [optional] if omitted the server will use the default value of 20 + sort ([str]): Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.. [optional] + x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False + meta_include ([str]): Include Meta objects.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutList + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + return self.get_all_entities_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def get_entity_computed_attributes( + self, + workspace_id, + object_id, + **kwargs + ): + """Get a Computed Attribute # 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_entity_computed_attributes(workspace_id, object_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False + meta_include ([str]): Include Meta objects.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + return self.get_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def patch_entity_computed_attributes( + self, + workspace_id, + object_id, + json_api_computed_attribute_patch_document, + **kwargs + ): + """Patch a Computed Attribute # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + json_api_computed_attribute_patch_document (JsonApiComputedAttributePatchDocument): + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + kwargs['json_api_computed_attribute_patch_document'] = \ + json_api_computed_attribute_patch_document + return self.patch_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def search_entities_computed_attributes( + self, + workspace_id, + entity_search_body, + **kwargs + ): + """The search endpoint (beta) # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.search_entities_computed_attributes(workspace_id, entity_search_body, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + entity_search_body (EntitySearchBody): Search request body with filter, pagination, and sorting options + + Keyword Args: + origin (str): [optional] if omitted the server will use the default value of "ALL" + x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutList + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['entity_search_body'] = \ + entity_search_body + return self.search_entities_computed_attributes_endpoint.call_with_http_info(**kwargs) + + def update_entity_computed_attributes( + self, + workspace_id, + object_id, + json_api_computed_attribute_in_document, + **kwargs + ): + """Put a Computed Attribute # 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_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + json_api_computed_attribute_in_document (JsonApiComputedAttributeInDocument): + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + kwargs['json_api_computed_attribute_in_document'] = \ + json_api_computed_attribute_in_document + return self.update_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + diff --git a/gooddata-api-client/gooddata_api_client/api/entities_api.py b/gooddata-api-client/gooddata_api_client/api/entities_api.py index 849daf2a1..e390f016b 100644 --- a/gooddata-api-client/gooddata_api_client/api/entities_api.py +++ b/gooddata-api-client/gooddata_api_client/api/entities_api.py @@ -53,6 +53,11 @@ from gooddata_api_client.model.json_api_color_palette_out_document import JsonApiColorPaletteOutDocument from gooddata_api_client.model.json_api_color_palette_out_list import JsonApiColorPaletteOutList from gooddata_api_client.model.json_api_color_palette_patch_document import JsonApiColorPalettePatchDocument +from gooddata_api_client.model.json_api_computed_attribute_in_document import JsonApiComputedAttributeInDocument +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from gooddata_api_client.model.json_api_computed_attribute_out_list import JsonApiComputedAttributeOutList +from gooddata_api_client.model.json_api_computed_attribute_patch_document import JsonApiComputedAttributePatchDocument +from gooddata_api_client.model.json_api_computed_attribute_post_optional_id_document import JsonApiComputedAttributePostOptionalIdDocument from gooddata_api_client.model.json_api_cookie_security_configuration_in_document import JsonApiCookieSecurityConfigurationInDocument from gooddata_api_client.model.json_api_cookie_security_configuration_out_document import JsonApiCookieSecurityConfigurationOutDocument from gooddata_api_client.model.json_api_cookie_security_configuration_patch_document import JsonApiCookieSecurityConfigurationPatchDocument @@ -744,6 +749,103 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.create_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes', + 'operation_id': 'create_entity_computed_attributes', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'json_api_computed_attribute_post_optional_id_document', + 'include', + 'meta_include', + ], + 'required': [ + 'workspace_id', + 'json_api_computed_attribute_post_optional_id_document', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + 'meta_include', + ], + 'validation': [ + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + ('meta_include',): { + + "ORIGIN": "origin", + "ALL": "all", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'json_api_computed_attribute_post_optional_id_document': + (JsonApiComputedAttributePostOptionalIdDocument,), + 'include': + ([str],), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'include': 'include', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'workspace_id': 'path', + 'json_api_computed_attribute_post_optional_id_document': 'body', + 'include': 'query', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + 'meta_include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ] + }, + api_client=api_client + ) self.create_entity_csp_directives_endpoint = _Endpoint( settings={ 'response_type': (JsonApiCspDirectiveOutDocument,), @@ -3569,6 +3671,59 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.delete_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'delete_entity_computed_attributes', + 'http_method': 'DELETE', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + ], + 'required': [ + 'workspace_id', + 'object_id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [], + }, + api_client=api_client + ) self.delete_entity_csp_directives_endpoint = _Endpoint( settings={ 'response_type': None, @@ -6435,6 +6590,134 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.get_all_entities_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutList,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes', + 'operation_id': 'get_all_entities_computed_attributes', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'origin', + 'filter', + 'include', + 'page', + 'size', + 'sort', + 'x_gdc_validate_relations', + 'meta_include', + ], + 'required': [ + 'workspace_id', + ], + 'nullable': [ + ], + 'enum': [ + 'origin', + 'include', + 'meta_include', + ], + 'validation': [ + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('origin',): { + + "ALL": "ALL", + "PARENTS": "PARENTS", + "NATIVE": "NATIVE" + }, + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + ('meta_include',): { + + "ORIGIN": "origin", + "PAGE": "page", + "ALL": "all", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'origin': + (str,), + 'filter': + (str,), + 'include': + ([str],), + 'page': + (int,), + 'size': + (int,), + 'sort': + ([str],), + 'x_gdc_validate_relations': + (bool,), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'origin': 'origin', + 'filter': 'filter', + 'include': 'include', + 'page': 'page', + 'size': 'size', + 'sort': 'sort', + 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'workspace_id': 'path', + 'origin': 'query', + 'filter': 'query', + 'include': 'query', + 'page': 'query', + 'size': 'query', + 'sort': 'query', + 'x_gdc_validate_relations': 'header', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + 'sort': 'multi', + 'meta_include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [], + }, + api_client=api_client + ) self.get_all_entities_csp_directives_endpoint = _Endpoint( settings={ 'response_type': (JsonApiCspDirectiveOutList,), @@ -11531,6 +11814,111 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.get_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'get_entity_computed_attributes', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + 'filter', + 'include', + 'x_gdc_validate_relations', + 'meta_include', + ], + 'required': [ + 'workspace_id', + 'object_id', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + 'meta_include', + ], + 'validation': [ + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + ('meta_include',): { + + "ORIGIN": "origin", + "ALL": "all", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + 'filter': + (str,), + 'include': + ([str],), + 'x_gdc_validate_relations': + (bool,), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + 'filter': 'filter', + 'include': 'include', + 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + 'filter': 'query', + 'include': 'query', + 'x_gdc_validate_relations': 'header', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + 'meta_include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [], + }, + api_client=api_client + ) self.get_entity_cookie_security_configurations_endpoint = _Endpoint( settings={ 'response_type': (JsonApiCookieSecurityConfigurationOutDocument,), @@ -15679,6 +16067,97 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.patch_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'patch_entity_computed_attributes', + 'http_method': 'PATCH', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_patch_document', + 'filter', + 'include', + ], + 'required': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_patch_document', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + 'json_api_computed_attribute_patch_document': + (JsonApiComputedAttributePatchDocument,), + 'filter': + (str,), + 'include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + 'filter': 'filter', + 'include': 'include', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + 'json_api_computed_attribute_patch_document': 'body', + 'filter': 'query', + 'include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ] + }, + api_client=api_client + ) self.patch_entity_cookie_security_configurations_endpoint = _Endpoint( settings={ 'response_type': (JsonApiCookieSecurityConfigurationOutDocument,), @@ -18930,6 +19409,80 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.search_entities_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutList,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/search', + 'operation_id': 'search_entities_computed_attributes', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'entity_search_body', + 'origin', + 'x_gdc_validate_relations', + ], + 'required': [ + 'workspace_id', + 'entity_search_body', + ], + 'nullable': [ + ], + 'enum': [ + 'origin', + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + ('origin',): { + + "ALL": "ALL", + "PARENTS": "PARENTS", + "NATIVE": "NATIVE" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'entity_search_body': + (EntitySearchBody,), + 'origin': + (str,), + 'x_gdc_validate_relations': + (bool,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'origin': 'origin', + 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS', + }, + 'location_map': { + 'workspace_id': 'path', + 'entity_search_body': 'body', + 'origin': 'query', + 'x_gdc_validate_relations': 'header', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) self.search_entities_custom_application_settings_endpoint = _Endpoint( settings={ 'response_type': (JsonApiCustomApplicationSettingOutList,), @@ -20657,6 +21210,97 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.update_entity_computed_attributes_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiComputedAttributeOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}', + 'operation_id': 'update_entity_computed_attributes', + 'http_method': 'PUT', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_in_document', + 'filter', + 'include', + ], + 'required': [ + 'workspace_id', + 'object_id', + 'json_api_computed_attribute_in_document', + ], + 'nullable': [ + ], + 'enum': [ + 'include', + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + ('include',): { + + "USERIDENTIFIERS": "userIdentifiers", + "FACTS": "facts", + "ATTRIBUTES": "attributes", + "LABELS": "labels", + "COMPUTEDATTRIBUTES": "computedAttributes", + "METRICS": "metrics", + "DATASETS": "datasets", + "PARAMETERS": "parameters", + "CREATEDBY": "createdBy", + "MODIFIEDBY": "modifiedBy", + "CERTIFIEDBY": "certifiedBy", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'object_id': + (str,), + 'json_api_computed_attribute_in_document': + (JsonApiComputedAttributeInDocument,), + 'filter': + (str,), + 'include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'object_id': 'objectId', + 'filter': 'filter', + 'include': 'include', + }, + 'location_map': { + 'workspace_id': 'path', + 'object_id': 'path', + 'json_api_computed_attribute_in_document': 'body', + 'filter': 'query', + 'include': 'query', + }, + 'collection_format_map': { + 'include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ], + 'content_type': [ + 'application/json', + 'application/vnd.gooddata.api+json' + ] + }, + api_client=api_client + ) self.update_entity_cookie_security_configurations_endpoint = _Endpoint( settings={ 'response_type': (JsonApiCookieSecurityConfigurationOutDocument,), @@ -24011,7 +24655,93 @@ def create_entity_color_palettes( async_req (bool): execute request asynchronously Returns: - JsonApiColorPaletteOutDocument + JsonApiColorPaletteOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['json_api_color_palette_in_document'] = \ + json_api_color_palette_in_document + return self.create_entity_color_palettes_endpoint.call_with_http_info(**kwargs) + + def create_entity_computed_attributes( + self, + workspace_id, + json_api_computed_attribute_post_optional_id_document, + **kwargs + ): + """Post Computed Attributes # 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_entity_computed_attributes(workspace_id, json_api_computed_attribute_post_optional_id_document, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + json_api_computed_attribute_post_optional_id_document (JsonApiComputedAttributePostOptionalIdDocument): + + Keyword Args: + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + meta_include ([str]): Include Meta objects.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument If the method is called asynchronously, returns the request thread. """ @@ -24040,9 +24770,11 @@ def create_entity_color_palettes( '_content_type') kwargs['_host_index'] = kwargs.get('_host_index') kwargs['_request_auths'] = kwargs.get('_request_auths', None) - kwargs['json_api_color_palette_in_document'] = \ - json_api_color_palette_in_document - return self.create_entity_color_palettes_endpoint.call_with_http_info(**kwargs) + kwargs['workspace_id'] = \ + workspace_id + kwargs['json_api_computed_attribute_post_optional_id_document'] = \ + json_api_computed_attribute_post_optional_id_document + return self.create_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) def create_entity_csp_directives( self, @@ -27542,6 +28274,92 @@ def delete_entity_color_palettes( id return self.delete_entity_color_palettes_endpoint.call_with_http_info(**kwargs) + def delete_entity_computed_attributes( + self, + workspace_id, + object_id, + **kwargs + ): + """Delete a Computed Attribute # 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_entity_computed_attributes(workspace_id, object_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + return self.delete_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + def delete_entity_csp_directives( self, id, @@ -31275,6 +32093,96 @@ def get_all_entities_color_palettes( kwargs['_request_auths'] = kwargs.get('_request_auths', None) return self.get_all_entities_color_palettes_endpoint.call_with_http_info(**kwargs) + def get_all_entities_computed_attributes( + self, + workspace_id, + **kwargs + ): + """Get all Computed Attributes # 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_all_entities_computed_attributes(workspace_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + + Keyword Args: + origin (str): [optional] if omitted the server will use the default value of "ALL" + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + page (int): Zero-based page index (0..N). [optional] if omitted the server will use the default value of 0 + size (int): The size of the page to be returned. [optional] if omitted the server will use the default value of 20 + sort ([str]): Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.. [optional] + x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False + meta_include ([str]): Include Meta objects.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutList + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + return self.get_all_entities_computed_attributes_endpoint.call_with_http_info(**kwargs) + def get_all_entities_csp_directives( self, **kwargs @@ -35843,9 +36751,99 @@ def get_entity_color_palettes( '_content_type') kwargs['_host_index'] = kwargs.get('_host_index') kwargs['_request_auths'] = kwargs.get('_request_auths', None) - kwargs['id'] = \ - id - return self.get_entity_color_palettes_endpoint.call_with_http_info(**kwargs) + kwargs['id'] = \ + id + return self.get_entity_color_palettes_endpoint.call_with_http_info(**kwargs) + + def get_entity_computed_attributes( + self, + workspace_id, + object_id, + **kwargs + ): + """Get a Computed Attribute # 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_entity_computed_attributes(workspace_id, object_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False + meta_include ([str]): Include Meta objects.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + return self.get_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) def get_entity_cookie_security_configurations( self, @@ -40369,6 +41367,98 @@ def patch_entity_color_palettes( json_api_color_palette_patch_document return self.patch_entity_color_palettes_endpoint.call_with_http_info(**kwargs) + def patch_entity_computed_attributes( + self, + workspace_id, + object_id, + json_api_computed_attribute_patch_document, + **kwargs + ): + """Patch a Computed Attribute # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.patch_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_patch_document, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + json_api_computed_attribute_patch_document (JsonApiComputedAttributePatchDocument): + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + kwargs['json_api_computed_attribute_patch_document'] = \ + json_api_computed_attribute_patch_document + return self.patch_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + def patch_entity_cookie_security_configurations( self, id, @@ -44135,6 +45225,94 @@ def search_entities_automations( entity_search_body return self.search_entities_automations_endpoint.call_with_http_info(**kwargs) + def search_entities_computed_attributes( + self, + workspace_id, + entity_search_body, + **kwargs + ): + """The search endpoint (beta) # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.search_entities_computed_attributes(workspace_id, entity_search_body, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + entity_search_body (EntitySearchBody): Search request body with filter, pagination, and sorting options + + Keyword Args: + origin (str): [optional] if omitted the server will use the default value of "ALL" + x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutList + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['entity_search_body'] = \ + entity_search_body + return self.search_entities_computed_attributes_endpoint.call_with_http_info(**kwargs) + def search_entities_custom_application_settings( self, workspace_id, @@ -46165,6 +47343,98 @@ def update_entity_color_palettes( json_api_color_palette_in_document return self.update_entity_color_palettes_endpoint.call_with_http_info(**kwargs) + def update_entity_computed_attributes( + self, + workspace_id, + object_id, + json_api_computed_attribute_in_document, + **kwargs + ): + """Put a Computed Attribute # 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_entity_computed_attributes(workspace_id, object_id, json_api_computed_attribute_in_document, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + object_id (str): + json_api_computed_attribute_in_document (JsonApiComputedAttributeInDocument): + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + include ([str]): Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/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. + _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) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiComputedAttributeOutDocument + 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', True + ) + 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['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['object_id'] = \ + object_id + kwargs['json_api_computed_attribute_in_document'] = \ + json_api_computed_attribute_in_document + return self.update_entity_computed_attributes_endpoint.call_with_http_info(**kwargs) + def update_entity_cookie_security_configurations( self, id, diff --git a/gooddata-api-client/gooddata_api_client/apis/__init__.py b/gooddata-api-client/gooddata_api_client/apis/__init__.py index 39ee6bd20..eeccf232f 100644 --- a/gooddata-api-client/gooddata_api_client/apis/__init__.py +++ b/gooddata-api-client/gooddata_api_client/apis/__init__.py @@ -32,6 +32,7 @@ from gooddata_api_client.api.cache_usage_api import CacheUsageApi from gooddata_api_client.api.certification_api import CertificationApi from gooddata_api_client.api.computation_api import ComputationApi +from gooddata_api_client.api.computed_attributes_api import ComputedAttributesApi from gooddata_api_client.api.cookie_security_configuration_api import CookieSecurityConfigurationApi from gooddata_api_client.api.dashboards_api import DashboardsApi from gooddata_api_client.api.data_filters_api import DataFiltersApi @@ -109,6 +110,7 @@ from gooddata_api_client.api.automation_organization_view_controller_api import AutomationOrganizationViewControllerApi from gooddata_api_client.api.automation_result_controller_api import AutomationResultControllerApi from gooddata_api_client.api.color_palette_controller_api import ColorPaletteControllerApi +from gooddata_api_client.api.computed_attribute_controller_api import ComputedAttributeControllerApi from gooddata_api_client.api.cookie_security_configuration_controller_api import CookieSecurityConfigurationControllerApi from gooddata_api_client.api.csp_directive_controller_api import CspDirectiveControllerApi from gooddata_api_client.api.custom_application_setting_controller_api import CustomApplicationSettingControllerApi diff --git a/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_core_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_core_identifier.py index 7effdae91..e4ab5929c 100644 --- a/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_core_identifier.py +++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_core_identifier.py @@ -61,6 +61,7 @@ class AfmObjectIdentifierCoreIdentifier(ModelNormal): 'LABEL': "label", 'FACT': "fact", 'METRIC': "metric", + 'COMPUTEDATTRIBUTE': "computedAttribute", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_identifier.py index 957a62a3e..ae37df5c3 100644 --- a/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_identifier.py +++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_identifier.py @@ -59,6 +59,7 @@ class AfmObjectIdentifierIdentifier(ModelNormal): ('type',): { 'ANALYTICALDASHBOARD': "analyticalDashboard", 'ATTRIBUTE': "attribute", + 'COMPUTEDATTRIBUTE': "computedAttribute", 'DASHBOARDPLUGIN': "dashboardPlugin", 'DATASET': "dataset", 'FACT': "fact", diff --git a/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_label_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_label_identifier.py index 5837b784f..0c1dbac55 100644 --- a/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_label_identifier.py +++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_label_identifier.py @@ -58,6 +58,7 @@ class AfmObjectIdentifierLabelIdentifier(ModelNormal): allowed_values = { ('type',): { 'LABEL': "label", + 'COMPUTEDATTRIBUTE': "computedAttribute", }, } @@ -111,14 +112,14 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 """AfmObjectIdentifierLabelIdentifier - a model defined in OpenAPI Args: id (str): + type (str): Keyword Args: - type (str): defaults to "label", must be one of ["label", ] # noqa: E501 _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. @@ -151,7 +152,6 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) """ - type = kwargs.get('type', "label") _check_type = kwargs.pop('_check_type', True) _spec_property_naming = kwargs.pop('_spec_property_naming', True) _path_to_item = kwargs.pop('_path_to_item', ()) @@ -203,14 +203,14 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, id, *args, **kwargs): # noqa: E501 + def __init__(self, id, type, *args, **kwargs): # noqa: E501 """AfmObjectIdentifierLabelIdentifier - a model defined in OpenAPI Args: id (str): + type (str): Keyword Args: - type (str): defaults to "label", must be one of ["label", ] # noqa: E501 _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. @@ -243,7 +243,6 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) """ - type = kwargs.get('type', "label") _check_type = kwargs.pop('_check_type', True) _spec_property_naming = kwargs.pop('_spec_property_naming', False) _path_to_item = kwargs.pop('_path_to_item', ()) diff --git a/gooddata-api-client/gooddata_api_client/model/afm_valid_objects_query.py b/gooddata-api-client/gooddata_api_client/model/afm_valid_objects_query.py index d83479183..4ca12373b 100644 --- a/gooddata-api-client/gooddata_api_client/model/afm_valid_objects_query.py +++ b/gooddata-api-client/gooddata_api_client/model/afm_valid_objects_query.py @@ -64,6 +64,7 @@ class AfmValidObjectsQuery(ModelNormal): 'FACTS': "facts", 'ATTRIBUTES': "attributes", 'MEASURES': "measures", + 'COMPUTEDATTRIBUTES': "computedAttributes", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_analytics_layer.py b/gooddata-api-client/gooddata_api_client/model/declarative_analytics_layer.py index 64a573a3e..a2fa8f482 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_analytics_layer.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_analytics_layer.py @@ -34,6 +34,7 @@ def lazy_import(): from gooddata_api_client.model.declarative_analytical_dashboard import DeclarativeAnalyticalDashboard from gooddata_api_client.model.declarative_analytical_dashboard_extension import DeclarativeAnalyticalDashboardExtension from gooddata_api_client.model.declarative_attribute_hierarchy import DeclarativeAttributeHierarchy + from gooddata_api_client.model.declarative_computed_attribute import DeclarativeComputedAttribute from gooddata_api_client.model.declarative_dashboard_plugin import DeclarativeDashboardPlugin from gooddata_api_client.model.declarative_export_definition import DeclarativeExportDefinition from gooddata_api_client.model.declarative_filter_context import DeclarativeFilterContext @@ -44,6 +45,7 @@ def lazy_import(): globals()['DeclarativeAnalyticalDashboard'] = DeclarativeAnalyticalDashboard globals()['DeclarativeAnalyticalDashboardExtension'] = DeclarativeAnalyticalDashboardExtension globals()['DeclarativeAttributeHierarchy'] = DeclarativeAttributeHierarchy + globals()['DeclarativeComputedAttribute'] = DeclarativeComputedAttribute globals()['DeclarativeDashboardPlugin'] = DeclarativeDashboardPlugin globals()['DeclarativeExportDefinition'] = DeclarativeExportDefinition globals()['DeclarativeFilterContext'] = DeclarativeFilterContext @@ -109,6 +111,7 @@ def openapi_types(): 'analytical_dashboard_extensions': ([DeclarativeAnalyticalDashboardExtension],), # noqa: E501 'analytical_dashboards': ([DeclarativeAnalyticalDashboard],), # noqa: E501 'attribute_hierarchies': ([DeclarativeAttributeHierarchy],), # noqa: E501 + 'computed_attributes': ([DeclarativeComputedAttribute],), # noqa: E501 'dashboard_plugins': ([DeclarativeDashboardPlugin],), # noqa: E501 'export_definitions': ([DeclarativeExportDefinition],), # noqa: E501 'filter_contexts': ([DeclarativeFilterContext],), # noqa: E501 @@ -127,6 +130,7 @@ def discriminator(): 'analytical_dashboard_extensions': 'analyticalDashboardExtensions', # noqa: E501 'analytical_dashboards': 'analyticalDashboards', # noqa: E501 'attribute_hierarchies': 'attributeHierarchies', # noqa: E501 + 'computed_attributes': 'computedAttributes', # noqa: E501 'dashboard_plugins': 'dashboardPlugins', # noqa: E501 'export_definitions': 'exportDefinitions', # noqa: E501 'filter_contexts': 'filterContexts', # noqa: E501 @@ -180,6 +184,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 analytical_dashboard_extensions ([DeclarativeAnalyticalDashboardExtension]): A list of dashboard permissions assigned to a related dashboard.. [optional] # noqa: E501 analytical_dashboards ([DeclarativeAnalyticalDashboard]): A list of analytical dashboards available in the model.. [optional] # noqa: E501 attribute_hierarchies ([DeclarativeAttributeHierarchy]): A list of attribute hierarchies.. [optional] # noqa: E501 + computed_attributes ([DeclarativeComputedAttribute]): A list of computed attributes available in the model.. [optional] # noqa: E501 dashboard_plugins ([DeclarativeDashboardPlugin]): A list of dashboard plugins available in the model.. [optional] # noqa: E501 export_definitions ([DeclarativeExportDefinition]): A list of export definitions.. [optional] # noqa: E501 filter_contexts ([DeclarativeFilterContext]): A list of filter contexts available in the model.. [optional] # noqa: E501 @@ -275,6 +280,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 analytical_dashboard_extensions ([DeclarativeAnalyticalDashboardExtension]): A list of dashboard permissions assigned to a related dashboard.. [optional] # noqa: E501 analytical_dashboards ([DeclarativeAnalyticalDashboard]): A list of analytical dashboards available in the model.. [optional] # noqa: E501 attribute_hierarchies ([DeclarativeAttributeHierarchy]): A list of attribute hierarchies.. [optional] # noqa: E501 + computed_attributes ([DeclarativeComputedAttribute]): A list of computed attributes available in the model.. [optional] # noqa: E501 dashboard_plugins ([DeclarativeDashboardPlugin]): A list of dashboard plugins available in the model.. [optional] # noqa: E501 export_definitions ([DeclarativeExportDefinition]): A list of export definitions.. [optional] # noqa: E501 filter_contexts ([DeclarativeFilterContext]): A list of filter contexts available in the model.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_computed_attribute.py b/gooddata-api-client/gooddata_api_client/model/declarative_computed_attribute.py new file mode 100644 index 000000000..00851915e --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/declarative_computed_attribute.py @@ -0,0 +1,409 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.declarative_computed_attribute_content import DeclarativeComputedAttributeContent + from gooddata_api_client.model.declarative_user_identifier import DeclarativeUserIdentifier + globals()['DeclarativeComputedAttributeContent'] = DeclarativeComputedAttributeContent + globals()['DeclarativeUserIdentifier'] = DeclarativeUserIdentifier + + +class DeclarativeComputedAttribute(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 = { + ('certification',): { + 'CERTIFIED': "CERTIFIED", + }, + ('data_type',): { + 'INT': "INT", + 'STRING': "STRING", + 'DATE': "DATE", + 'NUMERIC': "NUMERIC", + 'TIMESTAMP': "TIMESTAMP", + 'TIMESTAMP_TZ': "TIMESTAMP_TZ", + 'BOOLEAN': "BOOLEAN", + 'HLL': "HLL", + }, + ('value_type',): { + 'TEXT': "TEXT", + 'HYPERLINK': "HYPERLINK", + 'GEO': "GEO", + 'GEO_LONGITUDE': "GEO_LONGITUDE", + 'GEO_LATITUDE': "GEO_LATITUDE", + 'GEO_AREA': "GEO_AREA", + 'GEO_ICON': "GEO_ICON", + 'IMAGE': "IMAGE", + 'HYPERLOGLOG': "HYPERLOGLOG", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + ('title',): { + 'max_length': 255, + }, + ('certified_at',): { + 'regex': { + 'pattern': r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}', # noqa: E501 + }, + }, + ('created_at',): { + 'regex': { + 'pattern': r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}', # noqa: E501 + }, + }, + ('data_type',): { + 'max_length': 255, + }, + ('description',): { + 'max_length': 10000, + }, + ('modified_at',): { + 'regex': { + 'pattern': r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}', # noqa: E501 + }, + }, + ('tags',): { + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 { + 'content': (DeclarativeComputedAttributeContent,), # noqa: E501 + 'id': (str,), # noqa: E501 + 'title': (str,), # noqa: E501 + 'certification': (str,), # noqa: E501 + 'certification_message': (str, none_type,), # noqa: E501 + 'certified_at': (str, none_type,), # noqa: E501 + 'certified_by': (DeclarativeUserIdentifier,), # noqa: E501 + 'created_at': (str, none_type,), # noqa: E501 + 'created_by': (DeclarativeUserIdentifier,), # noqa: E501 + 'data_type': (str,), # noqa: E501 + 'description': (str,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'is_nullable': (bool,), # noqa: E501 + 'locale': (str,), # noqa: E501 + 'modified_at': (str, none_type,), # noqa: E501 + 'modified_by': (DeclarativeUserIdentifier,), # noqa: E501 + 'null_value': (str,), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'value_type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'content': 'content', # noqa: E501 + 'id': 'id', # noqa: E501 + 'title': 'title', # noqa: E501 + 'certification': 'certification', # noqa: E501 + 'certification_message': 'certificationMessage', # noqa: E501 + 'certified_at': 'certifiedAt', # noqa: E501 + 'certified_by': 'certifiedBy', # noqa: E501 + 'created_at': 'createdAt', # noqa: E501 + 'created_by': 'createdBy', # noqa: E501 + 'data_type': 'dataType', # noqa: E501 + 'description': 'description', # noqa: E501 + 'is_hidden': 'isHidden', # noqa: E501 + 'is_nullable': 'isNullable', # noqa: E501 + 'locale': 'locale', # noqa: E501 + 'modified_at': 'modifiedAt', # noqa: E501 + 'modified_by': 'modifiedBy', # noqa: E501 + 'null_value': 'nullValue', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'value_type': 'valueType', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501 + """DeclarativeComputedAttribute - a model defined in OpenAPI + + Args: + content (DeclarativeComputedAttributeContent): + id (str): Computed attribute ID. + title (str): Computed attribute title. + + 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,) + certification (str): Certification status of the entity.. [optional] if omitted the server will use the default value of "CERTIFIED" # noqa: E501 + certification_message (str, none_type): Optional message associated with the certification.. [optional] # noqa: E501 + certified_at (str, none_type): Time when the certification was set.. [optional] # noqa: E501 + certified_by (DeclarativeUserIdentifier): [optional] # noqa: E501 + created_at (str, none_type): Time of the entity creation.. [optional] # noqa: E501 + created_by (DeclarativeUserIdentifier): [optional] # noqa: E501 + data_type (str): Computed attribute data type. [optional] # noqa: E501 + description (str): Computed attribute description.. [optional] # noqa: E501 + is_hidden (bool): If true, this computed attribute is hidden from AI search results.. [optional] # noqa: E501 + is_nullable (bool): Flag indicating whether the associated source column allows null values.. [optional] # noqa: E501 + locale (str): Default locale for primary computed label.. [optional] # noqa: E501 + modified_at (str, none_type): Time of the last entity modification.. [optional] # noqa: E501 + modified_by (DeclarativeUserIdentifier): [optional] # noqa: E501 + null_value (str): Value used in coalesce during joins instead of null.. [optional] # noqa: E501 + tags ([str]): A list of tags.. [optional] # noqa: E501 + value_type (str): Specific type of the computed attribute value. [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.content = content + self.id = id + self.title = title + 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) + return self + + 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, content, id, title, *args, **kwargs): # noqa: E501 + """DeclarativeComputedAttribute - a model defined in OpenAPI + + Args: + content (DeclarativeComputedAttributeContent): + id (str): Computed attribute ID. + title (str): Computed attribute title. + + 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,) + certification (str): Certification status of the entity.. [optional] if omitted the server will use the default value of "CERTIFIED" # noqa: E501 + certification_message (str, none_type): Optional message associated with the certification.. [optional] # noqa: E501 + certified_at (str, none_type): Time when the certification was set.. [optional] # noqa: E501 + certified_by (DeclarativeUserIdentifier): [optional] # noqa: E501 + created_at (str, none_type): Time of the entity creation.. [optional] # noqa: E501 + created_by (DeclarativeUserIdentifier): [optional] # noqa: E501 + data_type (str): Computed attribute data type. [optional] # noqa: E501 + description (str): Computed attribute description.. [optional] # noqa: E501 + is_hidden (bool): If true, this computed attribute is hidden from AI search results.. [optional] # noqa: E501 + is_nullable (bool): Flag indicating whether the associated source column allows null values.. [optional] # noqa: E501 + locale (str): Default locale for primary computed label.. [optional] # noqa: E501 + modified_at (str, none_type): Time of the last entity modification.. [optional] # noqa: E501 + modified_by (DeclarativeUserIdentifier): [optional] # noqa: E501 + null_value (str): Value used in coalesce during joins instead of null.. [optional] # noqa: E501 + tags ([str]): A list of tags.. [optional] # noqa: E501 + value_type (str): Specific type of the computed attribute value. [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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.content = content + self.id = id + self.title = title + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes_content.py b/gooddata-api-client/gooddata_api_client/model/declarative_computed_attribute_content.py similarity index 98% rename from gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes_content.py rename to gooddata-api-client/gooddata_api_client/model/declarative_computed_attribute_content.py index 3676cceeb..3b586dbe1 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes_content.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_computed_attribute_content.py @@ -31,7 +31,7 @@ -class JsonApiMetricInAttributesContent(ModelNormal): +class DeclarativeComputedAttributeContent(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -116,7 +116,7 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, maql, *args, **kwargs): # noqa: E501 - """JsonApiMetricInAttributesContent - a model defined in OpenAPI + """DeclarativeComputedAttributeContent - a model defined in OpenAPI Args: maql (str): @@ -207,7 +207,7 @@ def _from_openapi_data(cls, maql, *args, **kwargs): # noqa: E501 @convert_js_args_to_python_args def __init__(self, maql, *args, **kwargs): # noqa: E501 - """JsonApiMetricInAttributesContent - a model defined in OpenAPI + """DeclarativeComputedAttributeContent - a model defined in OpenAPI Args: maql (str): diff --git a/gooddata-api-client/gooddata_api_client/model/dependent_entities_node.py b/gooddata-api-client/gooddata_api_client/model/dependent_entities_node.py index 82d83b3ae..ebaa0a0a5 100644 --- a/gooddata-api-client/gooddata_api_client/model/dependent_entities_node.py +++ b/gooddata-api-client/gooddata_api_client/model/dependent_entities_node.py @@ -65,6 +65,7 @@ class DependentEntitiesNode(ModelNormal): 'FACT': "fact", 'LABEL': "label", 'METRIC': "metric", + 'COMPUTEDATTRIBUTE': "computedAttribute", 'USERDATAFILTER': "userDataFilter", 'PARAMETER': "parameter", 'AUTOMATION': "automation", diff --git a/gooddata-api-client/gooddata_api_client/model/entity_identifier.py b/gooddata-api-client/gooddata_api_client/model/entity_identifier.py index c86a033e0..ddbe536e8 100644 --- a/gooddata-api-client/gooddata_api_client/model/entity_identifier.py +++ b/gooddata-api-client/gooddata_api_client/model/entity_identifier.py @@ -65,6 +65,7 @@ class EntityIdentifier(ModelNormal): 'FACT': "fact", 'LABEL': "label", 'METRIC': "metric", + 'COMPUTEDATTRIBUTE': "computedAttribute", 'USERDATAFILTER': "userDataFilter", 'PARAMETER': "parameter", 'AUTOMATION': "automation", diff --git a/gooddata-api-client/gooddata_api_client/model/identifier_ref_identifier.py b/gooddata-api-client/gooddata_api_client/model/identifier_ref_identifier.py index 953a6b5ce..3caf28004 100644 --- a/gooddata-api-client/gooddata_api_client/model/identifier_ref_identifier.py +++ b/gooddata-api-client/gooddata_api_client/model/identifier_ref_identifier.py @@ -66,6 +66,7 @@ class IdentifierRefIdentifier(ModelNormal): 'AGGREGATEDFACT': "aggregatedFact", 'LABEL': "label", 'METRIC': "metric", + 'COMPUTEDATTRIBUTE': "computedAttribute", 'USERDATAFILTER': "userDataFilter", 'PARAMETER': "parameter", 'EXPORTDEFINITION': "exportDefinition", diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_includes.py index 5c2e884b4..7065ad5ed 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_includes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_includes.py @@ -33,11 +33,11 @@ def lazy_import(): from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta from gooddata_api_client.model.json_api_analytical_dashboard_out_with_links import JsonApiAnalyticalDashboardOutWithLinks + from gooddata_api_client.model.json_api_computed_attribute_out_relationships import JsonApiComputedAttributeOutRelationships from gooddata_api_client.model.json_api_dashboard_plugin_out_with_links import JsonApiDashboardPluginOutWithLinks from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks from gooddata_api_client.model.json_api_filter_context_out_with_links import JsonApiFilterContextOutWithLinks from gooddata_api_client.model.json_api_label_out_with_links import JsonApiLabelOutWithLinks - from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships from gooddata_api_client.model.json_api_metric_out_with_links import JsonApiMetricOutWithLinks from gooddata_api_client.model.json_api_parameter_out_with_links import JsonApiParameterOutWithLinks from gooddata_api_client.model.json_api_user_identifier_out_with_links import JsonApiUserIdentifierOutWithLinks @@ -46,11 +46,11 @@ def lazy_import(): from gooddata_api_client.model.object_links import ObjectLinks globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta globals()['JsonApiAnalyticalDashboardOutWithLinks'] = JsonApiAnalyticalDashboardOutWithLinks + globals()['JsonApiComputedAttributeOutRelationships'] = JsonApiComputedAttributeOutRelationships globals()['JsonApiDashboardPluginOutWithLinks'] = JsonApiDashboardPluginOutWithLinks globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks globals()['JsonApiFilterContextOutWithLinks'] = JsonApiFilterContextOutWithLinks globals()['JsonApiLabelOutWithLinks'] = JsonApiLabelOutWithLinks - globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships globals()['JsonApiMetricOutWithLinks'] = JsonApiMetricOutWithLinks globals()['JsonApiParameterOutWithLinks'] = JsonApiParameterOutWithLinks globals()['JsonApiUserIdentifierOutWithLinks'] = JsonApiUserIdentifierOutWithLinks @@ -121,7 +121,7 @@ def openapi_types(): lazy_import() return { 'meta': (JsonApiAggregatedFactOutMeta,), # noqa: E501 - 'relationships': (JsonApiMetricOutRelationships,), # noqa: E501 + 'relationships': (JsonApiComputedAttributeOutRelationships,), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 'attributes': (JsonApiVisualizationObjectOutAttributes,), # noqa: E501 'id': (str,), # noqa: E501 @@ -182,7 +182,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 attributes (JsonApiVisualizationObjectOutAttributes): [optional] # noqa: E501 id (str): API identifier of an object. [optional] # noqa: E501 @@ -291,7 +291,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 attributes (JsonApiVisualizationObjectOutAttributes): [optional] # noqa: E501 id (str): API identifier of an object. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in.py new file mode 100644 index 000000000..7cef1eb56 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in.py @@ -0,0 +1,298 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_in_attributes import JsonApiComputedAttributeInAttributes + globals()['JsonApiComputedAttributeInAttributes'] = JsonApiComputedAttributeInAttributes + + +class JsonApiComputedAttributeIn(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 = { + ('type',): { + 'COMPUTEDATTRIBUTE': "computedAttribute", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 { + 'attributes': (JsonApiComputedAttributeInAttributes,), # noqa: E501 + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'attributes': 'attributes', # noqa: E501 + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeIn - a model defined in OpenAPI + + Args: + attributes (JsonApiComputedAttributeInAttributes): + id (str): API identifier of an object + + Keyword Args: + type (str): Object type. defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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,) + """ + + type = kwargs.get('type', "computedAttribute") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.attributes = attributes + self.id = id + self.type = 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) + return self + + 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, attributes, id, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeIn - a model defined in OpenAPI + + Args: + attributes (JsonApiComputedAttributeInAttributes): + id (str): API identifier of an object + + Keyword Args: + type (str): Object type. defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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,) + """ + + type = kwargs.get('type', "computedAttribute") + _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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.attributes = attributes + self.id = id + self.type = 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_attributes.py new file mode 100644 index 000000000..41571aa70 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_attributes.py @@ -0,0 +1,343 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_in_attributes_content import JsonApiComputedAttributeInAttributesContent + globals()['JsonApiComputedAttributeInAttributesContent'] = JsonApiComputedAttributeInAttributesContent + + +class JsonApiComputedAttributeInAttributes(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 = { + ('data_type',): { + 'INT': "INT", + 'STRING': "STRING", + 'DATE': "DATE", + 'NUMERIC': "NUMERIC", + 'TIMESTAMP': "TIMESTAMP", + 'TIMESTAMP_TZ': "TIMESTAMP_TZ", + 'BOOLEAN': "BOOLEAN", + 'HLL': "HLL", + }, + ('value_type',): { + 'TEXT': "TEXT", + 'HYPERLINK': "HYPERLINK", + 'GEO': "GEO", + 'GEO_LONGITUDE': "GEO_LONGITUDE", + 'GEO_LATITUDE': "GEO_LATITUDE", + 'GEO_AREA': "GEO_AREA", + 'GEO_ICON': "GEO_ICON", + 'IMAGE': "IMAGE", + 'HYPERLOGLOG': "HYPERLOGLOG", + }, + } + + validations = { + ('description',): { + 'max_length': 10000, + }, + ('title',): { + 'max_length': 255, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 { + 'content': (JsonApiComputedAttributeInAttributesContent,), # noqa: E501 + 'are_relations_valid': (bool,), # noqa: E501 + 'data_type': (str,), # noqa: E501 + 'description': (str,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'is_nullable': (bool,), # noqa: E501 + 'locale': (str,), # noqa: E501 + 'null_value': (str,), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'value_type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'content': 'content', # noqa: E501 + 'are_relations_valid': 'areRelationsValid', # noqa: E501 + 'data_type': 'dataType', # noqa: E501 + 'description': 'description', # noqa: E501 + 'is_hidden': 'isHidden', # noqa: E501 + 'is_nullable': 'isNullable', # noqa: E501 + 'locale': 'locale', # noqa: E501 + 'null_value': 'nullValue', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'value_type': 'valueType', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, content, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeInAttributes - a model defined in OpenAPI + + Args: + content (JsonApiComputedAttributeInAttributesContent): + + 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,) + are_relations_valid (bool): [optional] # noqa: E501 + data_type (str): [optional] # noqa: E501 + description (str): [optional] # noqa: E501 + is_hidden (bool): [optional] # noqa: E501 + is_nullable (bool): [optional] # noqa: E501 + locale (str): [optional] # noqa: E501 + null_value (str): [optional] # noqa: E501 + tags ([str]): [optional] # noqa: E501 + title (str): [optional] # noqa: E501 + value_type (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.content = content + 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) + return self + + 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, content, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeInAttributes - a model defined in OpenAPI + + Args: + content (JsonApiComputedAttributeInAttributesContent): + + 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,) + are_relations_valid (bool): [optional] # noqa: E501 + data_type (str): [optional] # noqa: E501 + description (str): [optional] # noqa: E501 + is_hidden (bool): [optional] # noqa: E501 + is_nullable (bool): [optional] # noqa: E501 + locale (str): [optional] # noqa: E501 + null_value (str): [optional] # noqa: E501 + tags ([str]): [optional] # noqa: E501 + title (str): [optional] # noqa: E501 + value_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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.content = content + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_attributes_content.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_attributes_content.py new file mode 100644 index 000000000..5306c24e5 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_attributes_content.py @@ -0,0 +1,288 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class JsonApiComputedAttributeInAttributesContent(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 = { + ('metric_type',): { + 'UNSPECIFIED': "UNSPECIFIED", + 'CURRENCY': "CURRENCY", + }, + } + + validations = { + ('maql',): { + 'max_length': 10000, + }, + ('format',): { + 'max_length': 2048, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 { + 'maql': (str,), # noqa: E501 + 'format': (str, none_type,), # noqa: E501 + 'metric_type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'maql': 'maql', # noqa: E501 + 'format': 'format', # noqa: E501 + 'metric_type': 'metricType', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, maql, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeInAttributesContent - a model defined in OpenAPI + + Args: + maql (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,) + format (str, none_type): Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.. [optional] # noqa: E501 + metric_type (str): Categorizes metric semantics (e.g., currency).. [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.maql = maql + 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) + return self + + 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, maql, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeInAttributesContent - a model defined in OpenAPI + + Args: + maql (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,) + format (str, none_type): Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.. [optional] # noqa: E501 + metric_type (str): Categorizes metric semantics (e.g., currency).. [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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.maql = maql + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_document.py new file mode 100644 index 000000000..fd26ed425 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_in_document.py @@ -0,0 +1,276 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_in import JsonApiComputedAttributeIn + globals()['JsonApiComputedAttributeIn'] = JsonApiComputedAttributeIn + + +class JsonApiComputedAttributeInDocument(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 = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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': (JsonApiComputedAttributeIn,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeInDocument - a model defined in OpenAPI + + Args: + data (JsonApiComputedAttributeIn): + + 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', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + return self + + 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 + """JsonApiComputedAttributeInDocument - a model defined in OpenAPI + + Args: + data (JsonApiComputedAttributeIn): + + 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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_linkage.py new file mode 100644 index 000000000..0e0a5e581 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_linkage.py @@ -0,0 +1,281 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class JsonApiComputedAttributeLinkage(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 = { + ('type',): { + 'COMPUTEDATTRIBUTE': "computedAttribute", + }, + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeLinkage - a model defined in OpenAPI + + Args: + id (str): + + Keyword Args: + type (str): defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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,) + """ + + type = kwargs.get('type', "computedAttribute") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.id = id + self.type = 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) + return self + + 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, id, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeLinkage - a model defined in OpenAPI + + Args: + id (str): + + Keyword Args: + type (str): defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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,) + """ + + type = kwargs.get('type', "computedAttribute") + _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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.id = id + self.type = 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out.py new file mode 100644 index 000000000..ac354d439 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out.py @@ -0,0 +1,310 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta + from gooddata_api_client.model.json_api_computed_attribute_out_attributes import JsonApiComputedAttributeOutAttributes + from gooddata_api_client.model.json_api_computed_attribute_out_relationships import JsonApiComputedAttributeOutRelationships + globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta + globals()['JsonApiComputedAttributeOutAttributes'] = JsonApiComputedAttributeOutAttributes + globals()['JsonApiComputedAttributeOutRelationships'] = JsonApiComputedAttributeOutRelationships + + +class JsonApiComputedAttributeOut(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 = { + ('type',): { + 'COMPUTEDATTRIBUTE': "computedAttribute", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 { + 'attributes': (JsonApiComputedAttributeOutAttributes,), # noqa: E501 + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'meta': (JsonApiAggregatedFactOutMeta,), # noqa: E501 + 'relationships': (JsonApiComputedAttributeOutRelationships,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'attributes': 'attributes', # noqa: E501 + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + 'meta': 'meta', # noqa: E501 + 'relationships': 'relationships', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeOut - a model defined in OpenAPI + + Args: + attributes (JsonApiComputedAttributeOutAttributes): + id (str): API identifier of an object + + Keyword Args: + type (str): Object type. defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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 (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 + """ + + type = kwargs.get('type', "computedAttribute") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.attributes = attributes + self.id = id + self.type = 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) + return self + + 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, attributes, id, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeOut - a model defined in OpenAPI + + Args: + attributes (JsonApiComputedAttributeOutAttributes): + id (str): API identifier of an object + + Keyword Args: + type (str): Object type. defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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 (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 + """ + + type = kwargs.get('type', "computedAttribute") + _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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.attributes = attributes + self.id = id + self.type = 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_attributes.py new file mode 100644 index 000000000..8200b43c4 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_attributes.py @@ -0,0 +1,381 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_in_attributes_content import JsonApiComputedAttributeInAttributesContent + globals()['JsonApiComputedAttributeInAttributesContent'] = JsonApiComputedAttributeInAttributesContent + + +class JsonApiComputedAttributeOutAttributes(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 = { + ('certification',): { + 'CERTIFIED': "CERTIFIED", + }, + ('data_type',): { + 'INT': "INT", + 'STRING': "STRING", + 'DATE': "DATE", + 'NUMERIC': "NUMERIC", + 'TIMESTAMP': "TIMESTAMP", + 'TIMESTAMP_TZ': "TIMESTAMP_TZ", + 'BOOLEAN': "BOOLEAN", + 'HLL': "HLL", + }, + ('value_type',): { + 'TEXT': "TEXT", + 'HYPERLINK': "HYPERLINK", + 'GEO': "GEO", + 'GEO_LONGITUDE': "GEO_LONGITUDE", + 'GEO_LATITUDE': "GEO_LATITUDE", + 'GEO_AREA': "GEO_AREA", + 'GEO_ICON': "GEO_ICON", + 'IMAGE': "IMAGE", + 'HYPERLOGLOG': "HYPERLOGLOG", + }, + } + + validations = { + ('certified_at',): { + 'regex': { + 'pattern': r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}', # noqa: E501 + }, + }, + ('created_at',): { + 'regex': { + 'pattern': r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}', # noqa: E501 + }, + }, + ('description',): { + 'max_length': 10000, + }, + ('modified_at',): { + 'regex': { + 'pattern': r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}', # noqa: E501 + }, + }, + ('title',): { + 'max_length': 255, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 { + 'content': (JsonApiComputedAttributeInAttributesContent,), # noqa: E501 + 'are_relations_valid': (bool,), # noqa: E501 + 'certification': (str,), # noqa: E501 + 'certification_message': (str, none_type,), # noqa: E501 + 'certified_at': (datetime, none_type,), # noqa: E501 + 'created_at': (datetime, none_type,), # noqa: E501 + 'data_type': (str,), # noqa: E501 + 'description': (str,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'is_nullable': (bool,), # noqa: E501 + 'locale': (str,), # noqa: E501 + 'modified_at': (datetime, none_type,), # noqa: E501 + 'null_value': (str,), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'value_type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'content': 'content', # noqa: E501 + 'are_relations_valid': 'areRelationsValid', # noqa: E501 + 'certification': 'certification', # noqa: E501 + 'certification_message': 'certificationMessage', # noqa: E501 + 'certified_at': 'certifiedAt', # noqa: E501 + 'created_at': 'createdAt', # noqa: E501 + 'data_type': 'dataType', # noqa: E501 + 'description': 'description', # noqa: E501 + 'is_hidden': 'isHidden', # noqa: E501 + 'is_nullable': 'isNullable', # noqa: E501 + 'locale': 'locale', # noqa: E501 + 'modified_at': 'modifiedAt', # noqa: E501 + 'null_value': 'nullValue', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'value_type': 'valueType', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, content, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeOutAttributes - a model defined in OpenAPI + + Args: + content (JsonApiComputedAttributeInAttributesContent): + + 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,) + are_relations_valid (bool): [optional] # noqa: E501 + certification (str): Certification status of the entity.. [optional] if omitted the server will use the default value of "CERTIFIED" # noqa: E501 + certification_message (str, none_type): Optional message associated with the certification.. [optional] # noqa: E501 + certified_at (datetime, none_type): Time when the certification was set.. [optional] # noqa: E501 + created_at (datetime, none_type): Time of the entity creation.. [optional] # noqa: E501 + data_type (str): [optional] # noqa: E501 + description (str): [optional] # noqa: E501 + is_hidden (bool): [optional] # noqa: E501 + is_nullable (bool): [optional] # noqa: E501 + locale (str): [optional] # noqa: E501 + modified_at (datetime, none_type): Time of the last entity modification.. [optional] # noqa: E501 + null_value (str): [optional] # noqa: E501 + tags ([str]): [optional] # noqa: E501 + title (str): [optional] # noqa: E501 + value_type (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.content = content + 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) + return self + + 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, content, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeOutAttributes - a model defined in OpenAPI + + Args: + content (JsonApiComputedAttributeInAttributesContent): + + 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,) + are_relations_valid (bool): [optional] # noqa: E501 + certification (str): Certification status of the entity.. [optional] if omitted the server will use the default value of "CERTIFIED" # noqa: E501 + certification_message (str, none_type): Optional message associated with the certification.. [optional] # noqa: E501 + certified_at (datetime, none_type): Time when the certification was set.. [optional] # noqa: E501 + created_at (datetime, none_type): Time of the entity creation.. [optional] # noqa: E501 + data_type (str): [optional] # noqa: E501 + description (str): [optional] # noqa: E501 + is_hidden (bool): [optional] # noqa: E501 + is_nullable (bool): [optional] # noqa: E501 + locale (str): [optional] # noqa: E501 + modified_at (datetime, none_type): Time of the last entity modification.. [optional] # noqa: E501 + null_value (str): [optional] # noqa: E501 + tags ([str]): [optional] # noqa: E501 + title (str): [optional] # noqa: E501 + value_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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.content = content + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_document.py new file mode 100644 index 000000000..559c8c319 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_document.py @@ -0,0 +1,290 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_out import JsonApiComputedAttributeOut + from gooddata_api_client.model.json_api_computed_attribute_out_includes import JsonApiComputedAttributeOutIncludes + from gooddata_api_client.model.object_links import ObjectLinks + globals()['JsonApiComputedAttributeOut'] = JsonApiComputedAttributeOut + globals()['JsonApiComputedAttributeOutIncludes'] = JsonApiComputedAttributeOutIncludes + globals()['ObjectLinks'] = ObjectLinks + + +class JsonApiComputedAttributeOutDocument(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 = { + ('included',): { + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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': (JsonApiComputedAttributeOut,), # noqa: E501 + 'included': ([JsonApiComputedAttributeOutIncludes],), # noqa: E501 + 'links': (ObjectLinks,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + 'included': 'included', # noqa: E501 + 'links': 'links', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeOutDocument - a model defined in OpenAPI + + Args: + data (JsonApiComputedAttributeOut): + + 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,) + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 + links (ObjectLinks): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + return self + + 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 + """JsonApiComputedAttributeOutDocument - a model defined in OpenAPI + + Args: + data (JsonApiComputedAttributeOut): + + 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,) + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 + links (ObjectLinks): [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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_includes.py similarity index 97% rename from gooddata-api-client/gooddata_api_client/model/json_api_metric_out_includes.py rename to gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_includes.py index c528b46cd..bfa71a4a8 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_includes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_includes.py @@ -33,6 +33,7 @@ def lazy_import(): from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta from gooddata_api_client.model.json_api_attribute_out_with_links import JsonApiAttributeOutWithLinks + from gooddata_api_client.model.json_api_computed_attribute_out_with_links import JsonApiComputedAttributeOutWithLinks from gooddata_api_client.model.json_api_dashboard_plugin_out_relationships import JsonApiDashboardPluginOutRelationships from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks from gooddata_api_client.model.json_api_fact_out_with_links import JsonApiFactOutWithLinks @@ -44,6 +45,7 @@ def lazy_import(): from gooddata_api_client.model.object_links import ObjectLinks globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta globals()['JsonApiAttributeOutWithLinks'] = JsonApiAttributeOutWithLinks + globals()['JsonApiComputedAttributeOutWithLinks'] = JsonApiComputedAttributeOutWithLinks globals()['JsonApiDashboardPluginOutRelationships'] = JsonApiDashboardPluginOutRelationships globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks globals()['JsonApiFactOutWithLinks'] = JsonApiFactOutWithLinks @@ -55,7 +57,7 @@ def lazy_import(): globals()['ObjectLinks'] = ObjectLinks -class JsonApiMetricOutIncludes(ModelComposed): +class JsonApiComputedAttributeOutIncludes(ModelComposed): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -144,7 +146,7 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 - """JsonApiMetricOutIncludes - a model defined in OpenAPI + """JsonApiComputedAttributeOutIncludes - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -253,7 +255,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 @convert_js_args_to_python_args def __init__(self, *args, **kwargs): # noqa: E501 - """JsonApiMetricOutIncludes - a model defined in OpenAPI + """JsonApiComputedAttributeOutIncludes - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -364,6 +366,7 @@ def _composed_schemas(): ], 'oneOf': [ JsonApiAttributeOutWithLinks, + JsonApiComputedAttributeOutWithLinks, JsonApiDatasetOutWithLinks, JsonApiFactOutWithLinks, JsonApiLabelOutWithLinks, diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_list.py new file mode 100644 index 000000000..4a3184d7b --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_list.py @@ -0,0 +1,298 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_agent_out_list_meta import JsonApiAgentOutListMeta + from gooddata_api_client.model.json_api_computed_attribute_out_includes import JsonApiComputedAttributeOutIncludes + from gooddata_api_client.model.json_api_computed_attribute_out_with_links import JsonApiComputedAttributeOutWithLinks + from gooddata_api_client.model.list_links import ListLinks + globals()['JsonApiAgentOutListMeta'] = JsonApiAgentOutListMeta + globals()['JsonApiComputedAttributeOutIncludes'] = JsonApiComputedAttributeOutIncludes + globals()['JsonApiComputedAttributeOutWithLinks'] = JsonApiComputedAttributeOutWithLinks + globals()['ListLinks'] = ListLinks + + +class JsonApiComputedAttributeOutList(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 = { + ('data',): { + }, + ('included',): { + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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': ([JsonApiComputedAttributeOutWithLinks],), # noqa: E501 + 'included': ([JsonApiComputedAttributeOutIncludes],), # noqa: E501 + 'links': (ListLinks,), # noqa: E501 + 'meta': (JsonApiAgentOutListMeta,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + 'included': 'included', # noqa: E501 + 'links': 'links', # noqa: E501 + 'meta': 'meta', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeOutList - a model defined in OpenAPI + + Args: + data ([JsonApiComputedAttributeOutWithLinks]): + + 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,) + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 + links (ListLinks): [optional] # noqa: E501 + meta (JsonApiAgentOutListMeta): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + return self + + 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 + """JsonApiComputedAttributeOutList - a model defined in OpenAPI + + Args: + data ([JsonApiComputedAttributeOutWithLinks]): + + 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,) + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 + links (ListLinks): [optional] # noqa: E501 + meta (JsonApiAgentOutListMeta): [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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_relationships.py similarity index 91% rename from gooddata-api-client/gooddata_api_client/model/json_api_metric_out_relationships.py rename to gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_relationships.py index ea027ddb8..975b5c53c 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_relationships.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_relationships.py @@ -37,17 +37,19 @@ def lazy_import(): from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_metrics import JsonApiAnalyticalDashboardOutRelationshipsMetrics from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_parameters import JsonApiAnalyticalDashboardOutRelationshipsParameters from gooddata_api_client.model.json_api_attribute_hierarchy_out_relationships_attributes import JsonApiAttributeHierarchyOutRelationshipsAttributes - from gooddata_api_client.model.json_api_dataset_out_relationships_facts import JsonApiDatasetOutRelationshipsFacts + from gooddata_api_client.model.json_api_computed_attribute_out_relationships_computed_attributes import JsonApiComputedAttributeOutRelationshipsComputedAttributes + from gooddata_api_client.model.json_api_computed_attribute_out_relationships_facts import JsonApiComputedAttributeOutRelationshipsFacts globals()['JsonApiAgentOutRelationshipsCreatedBy'] = JsonApiAgentOutRelationshipsCreatedBy globals()['JsonApiAnalyticalDashboardOutRelationshipsDatasets'] = JsonApiAnalyticalDashboardOutRelationshipsDatasets globals()['JsonApiAnalyticalDashboardOutRelationshipsLabels'] = JsonApiAnalyticalDashboardOutRelationshipsLabels globals()['JsonApiAnalyticalDashboardOutRelationshipsMetrics'] = JsonApiAnalyticalDashboardOutRelationshipsMetrics globals()['JsonApiAnalyticalDashboardOutRelationshipsParameters'] = JsonApiAnalyticalDashboardOutRelationshipsParameters globals()['JsonApiAttributeHierarchyOutRelationshipsAttributes'] = JsonApiAttributeHierarchyOutRelationshipsAttributes - globals()['JsonApiDatasetOutRelationshipsFacts'] = JsonApiDatasetOutRelationshipsFacts + globals()['JsonApiComputedAttributeOutRelationshipsComputedAttributes'] = JsonApiComputedAttributeOutRelationshipsComputedAttributes + globals()['JsonApiComputedAttributeOutRelationshipsFacts'] = JsonApiComputedAttributeOutRelationshipsFacts -class JsonApiMetricOutRelationships(ModelNormal): +class JsonApiComputedAttributeOutRelationships(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -102,9 +104,10 @@ def openapi_types(): return { 'attributes': (JsonApiAttributeHierarchyOutRelationshipsAttributes,), # noqa: E501 'certified_by': (JsonApiAgentOutRelationshipsCreatedBy,), # noqa: E501 + 'computed_attributes': (JsonApiComputedAttributeOutRelationshipsComputedAttributes,), # noqa: E501 'created_by': (JsonApiAgentOutRelationshipsCreatedBy,), # noqa: E501 'datasets': (JsonApiAnalyticalDashboardOutRelationshipsDatasets,), # noqa: E501 - 'facts': (JsonApiDatasetOutRelationshipsFacts,), # noqa: E501 + 'facts': (JsonApiComputedAttributeOutRelationshipsFacts,), # noqa: E501 'labels': (JsonApiAnalyticalDashboardOutRelationshipsLabels,), # noqa: E501 'metrics': (JsonApiAnalyticalDashboardOutRelationshipsMetrics,), # noqa: E501 'modified_by': (JsonApiAgentOutRelationshipsCreatedBy,), # noqa: E501 @@ -119,6 +122,7 @@ def discriminator(): attribute_map = { 'attributes': 'attributes', # noqa: E501 'certified_by': 'certifiedBy', # noqa: E501 + 'computed_attributes': 'computedAttributes', # noqa: E501 'created_by': 'createdBy', # noqa: E501 'datasets': 'datasets', # noqa: E501 'facts': 'facts', # noqa: E501 @@ -136,7 +140,7 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 - """JsonApiMetricOutRelationships - a model defined in OpenAPI + """JsonApiComputedAttributeOutRelationships - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -171,9 +175,10 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) attributes (JsonApiAttributeHierarchyOutRelationshipsAttributes): [optional] # noqa: E501 certified_by (JsonApiAgentOutRelationshipsCreatedBy): [optional] # noqa: E501 + computed_attributes (JsonApiComputedAttributeOutRelationshipsComputedAttributes): [optional] # noqa: E501 created_by (JsonApiAgentOutRelationshipsCreatedBy): [optional] # noqa: E501 datasets (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501 - facts (JsonApiDatasetOutRelationshipsFacts): [optional] # noqa: E501 + facts (JsonApiComputedAttributeOutRelationshipsFacts): [optional] # noqa: E501 labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [optional] # noqa: E501 metrics (JsonApiAnalyticalDashboardOutRelationshipsMetrics): [optional] # noqa: E501 modified_by (JsonApiAgentOutRelationshipsCreatedBy): [optional] # noqa: E501 @@ -230,7 +235,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 @convert_js_args_to_python_args def __init__(self, *args, **kwargs): # noqa: E501 - """JsonApiMetricOutRelationships - a model defined in OpenAPI + """JsonApiComputedAttributeOutRelationships - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -265,9 +270,10 @@ def __init__(self, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) attributes (JsonApiAttributeHierarchyOutRelationshipsAttributes): [optional] # noqa: E501 certified_by (JsonApiAgentOutRelationshipsCreatedBy): [optional] # noqa: E501 + computed_attributes (JsonApiComputedAttributeOutRelationshipsComputedAttributes): [optional] # noqa: E501 created_by (JsonApiAgentOutRelationshipsCreatedBy): [optional] # noqa: E501 datasets (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501 - facts (JsonApiDatasetOutRelationshipsFacts): [optional] # noqa: E501 + facts (JsonApiComputedAttributeOutRelationshipsFacts): [optional] # noqa: E501 labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [optional] # noqa: E501 metrics (JsonApiAnalyticalDashboardOutRelationshipsMetrics): [optional] # noqa: E501 modified_by (JsonApiAgentOutRelationshipsCreatedBy): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_relationships_computed_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_relationships_computed_attributes.py new file mode 100644 index 000000000..163ee7b18 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_relationships_computed_attributes.py @@ -0,0 +1,276 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_to_many_linkage import JsonApiComputedAttributeToManyLinkage + globals()['JsonApiComputedAttributeToManyLinkage'] = JsonApiComputedAttributeToManyLinkage + + +class JsonApiComputedAttributeOutRelationshipsComputedAttributes(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 = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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': (JsonApiComputedAttributeToManyLinkage,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeOutRelationshipsComputedAttributes - a model defined in OpenAPI + + Args: + data (JsonApiComputedAttributeToManyLinkage): + + 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', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + return self + + 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 + """JsonApiComputedAttributeOutRelationshipsComputedAttributes - a model defined in OpenAPI + + Args: + data (JsonApiComputedAttributeToManyLinkage): + + 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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships_facts.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_relationships_facts.py similarity index 98% rename from gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships_facts.py rename to gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_relationships_facts.py index 43b39cda2..469215d3a 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships_facts.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_relationships_facts.py @@ -35,7 +35,7 @@ def lazy_import(): globals()['JsonApiFactToManyLinkage'] = JsonApiFactToManyLinkage -class JsonApiDatasetOutRelationshipsFacts(ModelNormal): +class JsonApiComputedAttributeOutRelationshipsFacts(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -108,7 +108,7 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 - """JsonApiDatasetOutRelationshipsFacts - a model defined in OpenAPI + """JsonApiComputedAttributeOutRelationshipsFacts - a model defined in OpenAPI Args: data (JsonApiFactToManyLinkage): @@ -197,7 +197,7 @@ def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 @convert_js_args_to_python_args def __init__(self, data, *args, **kwargs): # noqa: E501 - """JsonApiDatasetOutRelationshipsFacts - a model defined in OpenAPI + """JsonApiComputedAttributeOutRelationshipsFacts - a model defined in OpenAPI Args: data (JsonApiFactToManyLinkage): diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_with_links.py new file mode 100644 index 000000000..015bf3992 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_out_with_links.py @@ -0,0 +1,361 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta + from gooddata_api_client.model.json_api_computed_attribute_out import JsonApiComputedAttributeOut + from gooddata_api_client.model.json_api_computed_attribute_out_attributes import JsonApiComputedAttributeOutAttributes + from gooddata_api_client.model.json_api_computed_attribute_out_relationships import JsonApiComputedAttributeOutRelationships + from gooddata_api_client.model.object_links import ObjectLinks + from gooddata_api_client.model.object_links_container import ObjectLinksContainer + globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta + globals()['JsonApiComputedAttributeOut'] = JsonApiComputedAttributeOut + globals()['JsonApiComputedAttributeOutAttributes'] = JsonApiComputedAttributeOutAttributes + globals()['JsonApiComputedAttributeOutRelationships'] = JsonApiComputedAttributeOutRelationships + globals()['ObjectLinks'] = ObjectLinks + globals()['ObjectLinksContainer'] = ObjectLinksContainer + + +class JsonApiComputedAttributeOutWithLinks(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 = { + ('type',): { + 'COMPUTEDATTRIBUTE': "computedAttribute", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 { + 'attributes': (JsonApiComputedAttributeOutAttributes,), # noqa: E501 + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'meta': (JsonApiAggregatedFactOutMeta,), # noqa: E501 + 'relationships': (JsonApiComputedAttributeOutRelationships,), # noqa: E501 + 'links': (ObjectLinks,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'attributes': 'attributes', # noqa: E501 + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + 'meta': 'meta', # noqa: E501 + 'relationships': 'relationships', # noqa: E501 + 'links': 'links', # noqa: E501 + } + + read_only_vars = { + } + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeOutWithLinks - a model defined in OpenAPI + + Keyword Args: + attributes (JsonApiComputedAttributeOutAttributes): + id (str): API identifier of an object + type (str): Object type. defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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 (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 + links (ObjectLinks): [optional] # noqa: E501 + """ + + type = kwargs.get('type', "computedAttribute") + _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', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + + return self + + 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, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributeOutWithLinks - a model defined in OpenAPI + + Keyword Args: + attributes (JsonApiComputedAttributeOutAttributes): + id (str): API identifier of an object + type (str): Object type. defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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 (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 + links (ObjectLinks): [optional] # noqa: E501 + """ + + type = kwargs.get('type', "computedAttribute") + _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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") + + @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 because 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': [ + JsonApiComputedAttributeOut, + ObjectLinksContainer, + ], + 'oneOf': [ + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch.py new file mode 100644 index 000000000..f8bb433c4 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch.py @@ -0,0 +1,298 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_patch_attributes import JsonApiComputedAttributePatchAttributes + globals()['JsonApiComputedAttributePatchAttributes'] = JsonApiComputedAttributePatchAttributes + + +class JsonApiComputedAttributePatch(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 = { + ('type',): { + 'COMPUTEDATTRIBUTE': "computedAttribute", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 { + 'attributes': (JsonApiComputedAttributePatchAttributes,), # noqa: E501 + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'attributes': 'attributes', # noqa: E501 + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributePatch - a model defined in OpenAPI + + Args: + attributes (JsonApiComputedAttributePatchAttributes): + id (str): API identifier of an object + + Keyword Args: + type (str): Object type. defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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,) + """ + + type = kwargs.get('type', "computedAttribute") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.attributes = attributes + self.id = id + self.type = 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) + return self + + 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, attributes, id, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributePatch - a model defined in OpenAPI + + Args: + attributes (JsonApiComputedAttributePatchAttributes): + id (str): API identifier of an object + + Keyword Args: + type (str): Object type. defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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,) + """ + + type = kwargs.get('type', "computedAttribute") + _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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.attributes = attributes + self.id = id + self.type = 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch_attributes.py new file mode 100644 index 000000000..88947fcb7 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch_attributes.py @@ -0,0 +1,337 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_in_attributes_content import JsonApiComputedAttributeInAttributesContent + globals()['JsonApiComputedAttributeInAttributesContent'] = JsonApiComputedAttributeInAttributesContent + + +class JsonApiComputedAttributePatchAttributes(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 = { + ('data_type',): { + 'INT': "INT", + 'STRING': "STRING", + 'DATE': "DATE", + 'NUMERIC': "NUMERIC", + 'TIMESTAMP': "TIMESTAMP", + 'TIMESTAMP_TZ': "TIMESTAMP_TZ", + 'BOOLEAN': "BOOLEAN", + 'HLL': "HLL", + }, + ('value_type',): { + 'TEXT': "TEXT", + 'HYPERLINK': "HYPERLINK", + 'GEO': "GEO", + 'GEO_LONGITUDE': "GEO_LONGITUDE", + 'GEO_LATITUDE': "GEO_LATITUDE", + 'GEO_AREA': "GEO_AREA", + 'GEO_ICON': "GEO_ICON", + 'IMAGE': "IMAGE", + 'HYPERLOGLOG': "HYPERLOGLOG", + }, + } + + validations = { + ('description',): { + 'max_length': 10000, + }, + ('title',): { + 'max_length': 255, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 { + 'are_relations_valid': (bool,), # noqa: E501 + 'content': (JsonApiComputedAttributeInAttributesContent,), # noqa: E501 + 'data_type': (str,), # noqa: E501 + 'description': (str,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'is_nullable': (bool,), # noqa: E501 + 'locale': (str,), # noqa: E501 + 'null_value': (str,), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'value_type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'are_relations_valid': 'areRelationsValid', # noqa: E501 + 'content': 'content', # noqa: E501 + 'data_type': 'dataType', # noqa: E501 + 'description': 'description', # noqa: E501 + 'is_hidden': 'isHidden', # noqa: E501 + 'is_nullable': 'isNullable', # noqa: E501 + 'locale': 'locale', # noqa: E501 + 'null_value': 'nullValue', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'value_type': 'valueType', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributePatchAttributes - 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,) + are_relations_valid (bool): [optional] # noqa: E501 + content (JsonApiComputedAttributeInAttributesContent): [optional] # noqa: E501 + data_type (str): [optional] # noqa: E501 + description (str): [optional] # noqa: E501 + is_hidden (bool): [optional] # noqa: E501 + is_nullable (bool): [optional] # noqa: E501 + locale (str): [optional] # noqa: E501 + null_value (str): [optional] # noqa: E501 + tags ([str]): [optional] # noqa: E501 + title (str): [optional] # noqa: E501 + value_type (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + return self + + 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 + """JsonApiComputedAttributePatchAttributes - 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,) + are_relations_valid (bool): [optional] # noqa: E501 + content (JsonApiComputedAttributeInAttributesContent): [optional] # noqa: E501 + data_type (str): [optional] # noqa: E501 + description (str): [optional] # noqa: E501 + is_hidden (bool): [optional] # noqa: E501 + is_nullable (bool): [optional] # noqa: E501 + locale (str): [optional] # noqa: E501 + null_value (str): [optional] # noqa: E501 + tags ([str]): [optional] # noqa: E501 + title (str): [optional] # noqa: E501 + value_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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch_document.py new file mode 100644 index 000000000..6387c76c6 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_patch_document.py @@ -0,0 +1,276 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_patch import JsonApiComputedAttributePatch + globals()['JsonApiComputedAttributePatch'] = JsonApiComputedAttributePatch + + +class JsonApiComputedAttributePatchDocument(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 = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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': (JsonApiComputedAttributePatch,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributePatchDocument - a model defined in OpenAPI + + Args: + data (JsonApiComputedAttributePatch): + + 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', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + return self + + 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 + """JsonApiComputedAttributePatchDocument - a model defined in OpenAPI + + Args: + data (JsonApiComputedAttributePatch): + + 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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_post_optional_id.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_post_optional_id.py new file mode 100644 index 000000000..d07e9f762 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_post_optional_id.py @@ -0,0 +1,296 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_in_attributes import JsonApiComputedAttributeInAttributes + globals()['JsonApiComputedAttributeInAttributes'] = JsonApiComputedAttributeInAttributes + + +class JsonApiComputedAttributePostOptionalId(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 = { + ('type',): { + 'COMPUTEDATTRIBUTE': "computedAttribute", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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 { + 'attributes': (JsonApiComputedAttributeInAttributes,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'id': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'attributes': 'attributes', # noqa: E501 + 'type': 'type', # noqa: E501 + 'id': 'id', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, attributes, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributePostOptionalId - a model defined in OpenAPI + + Args: + attributes (JsonApiComputedAttributeInAttributes): + + Keyword Args: + type (str): Object type. defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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): API identifier of an object. [optional] # noqa: E501 + """ + + type = kwargs.get('type', "computedAttribute") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.attributes = attributes + self.type = 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) + return self + + 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, attributes, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributePostOptionalId - a model defined in OpenAPI + + Args: + attributes (JsonApiComputedAttributeInAttributes): + + Keyword Args: + type (str): Object type. defaults to "computedAttribute", must be one of ["computedAttribute", ] # noqa: E501 + _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): API identifier of an object. [optional] # noqa: E501 + """ + + type = kwargs.get('type', "computedAttribute") + _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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.attributes = attributes + self.type = 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_post_optional_id_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_post_optional_id_document.py new file mode 100644 index 000000000..d572e47c9 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_post_optional_id_document.py @@ -0,0 +1,276 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_post_optional_id import JsonApiComputedAttributePostOptionalId + globals()['JsonApiComputedAttributePostOptionalId'] = JsonApiComputedAttributePostOptionalId + + +class JsonApiComputedAttributePostOptionalIdDocument(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 = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _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': (JsonApiComputedAttributePostOptionalId,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 + """JsonApiComputedAttributePostOptionalIdDocument - a model defined in OpenAPI + + Args: + data (JsonApiComputedAttributePostOptionalId): + + 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', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + return self + + 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 + """JsonApiComputedAttributePostOptionalIdDocument - a model defined in OpenAPI + + Args: + data (JsonApiComputedAttributePostOptionalId): + + 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: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_to_many_linkage.py new file mode 100644 index 000000000..f6834c42d --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_computed_attribute_to_many_linkage.py @@ -0,0 +1,292 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.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, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_linkage import JsonApiComputedAttributeLinkage + globals()['JsonApiComputedAttributeLinkage'] = JsonApiComputedAttributeLinkage + + +class JsonApiComputedAttributeToManyLinkage(ModelSimple): + """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. + 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 { + 'value': ([JsonApiComputedAttributeLinkage],), + } + + @cached_property + def discriminator(): + return None + + + attribute_map = {} + + read_only_vars = set() + + _composed_schemas = None + + 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): + """JsonApiComputedAttributeToManyLinkage - a model defined in OpenAPI + + Note that value can be passed either in args or in kwargs, but not in both. + + Args: + args[0] ([JsonApiComputedAttributeLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501 + + Keyword Args: + value ([JsonApiComputedAttributeLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501 + _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,) + """ + # required up here when default value is not given + _path_to_item = kwargs.pop('_path_to_item', ()) + + if 'value' in kwargs: + value = kwargs.pop('value') + elif args: + args = list(args) + value = args.pop(0) + else: + raise ApiTypeError( + "value is required, but not passed in args or kwargs and doesn't have default", + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.value = value + if kwargs: + raise ApiTypeError( + "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % ( + kwargs, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): + """JsonApiComputedAttributeToManyLinkage - a model defined in OpenAPI + + Note that value can be passed either in args or in kwargs, but not in both. + + Args: + args[0] ([JsonApiComputedAttributeLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501 + + Keyword Args: + value ([JsonApiComputedAttributeLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501 + _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,) + """ + # required up here when default value is not given + _path_to_item = kwargs.pop('_path_to_item', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if 'value' in kwargs: + value = kwargs.pop('value') + elif args: + args = list(args) + value = args.pop(0) + else: + raise ApiTypeError( + "value is required, but not passed in args or kwargs and doesn't have default", + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + 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.value = value + if kwargs: + raise ApiTypeError( + "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % ( + kwargs, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + return self diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships.py index b518ea522..ce4c1c360 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships.py @@ -33,13 +33,13 @@ def lazy_import(): from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_datasets import JsonApiAnalyticalDashboardOutRelationshipsDatasets from gooddata_api_client.model.json_api_attribute_hierarchy_out_relationships_attributes import JsonApiAttributeHierarchyOutRelationshipsAttributes + from gooddata_api_client.model.json_api_computed_attribute_out_relationships_facts import JsonApiComputedAttributeOutRelationshipsFacts from gooddata_api_client.model.json_api_dataset_out_relationships_aggregated_facts import JsonApiDatasetOutRelationshipsAggregatedFacts - from gooddata_api_client.model.json_api_dataset_out_relationships_facts import JsonApiDatasetOutRelationshipsFacts from gooddata_api_client.model.json_api_dataset_out_relationships_workspace_data_filters import JsonApiDatasetOutRelationshipsWorkspaceDataFilters globals()['JsonApiAnalyticalDashboardOutRelationshipsDatasets'] = JsonApiAnalyticalDashboardOutRelationshipsDatasets globals()['JsonApiAttributeHierarchyOutRelationshipsAttributes'] = JsonApiAttributeHierarchyOutRelationshipsAttributes + globals()['JsonApiComputedAttributeOutRelationshipsFacts'] = JsonApiComputedAttributeOutRelationshipsFacts globals()['JsonApiDatasetOutRelationshipsAggregatedFacts'] = JsonApiDatasetOutRelationshipsAggregatedFacts - globals()['JsonApiDatasetOutRelationshipsFacts'] = JsonApiDatasetOutRelationshipsFacts globals()['JsonApiDatasetOutRelationshipsWorkspaceDataFilters'] = JsonApiDatasetOutRelationshipsWorkspaceDataFilters @@ -98,7 +98,7 @@ def openapi_types(): return { 'aggregated_facts': (JsonApiDatasetOutRelationshipsAggregatedFacts,), # noqa: E501 'attributes': (JsonApiAttributeHierarchyOutRelationshipsAttributes,), # noqa: E501 - 'facts': (JsonApiDatasetOutRelationshipsFacts,), # noqa: E501 + 'facts': (JsonApiComputedAttributeOutRelationshipsFacts,), # noqa: E501 'references': (JsonApiAnalyticalDashboardOutRelationshipsDatasets,), # noqa: E501 'workspace_data_filters': (JsonApiDatasetOutRelationshipsWorkspaceDataFilters,), # noqa: E501 } @@ -159,7 +159,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) aggregated_facts (JsonApiDatasetOutRelationshipsAggregatedFacts): [optional] # noqa: E501 attributes (JsonApiAttributeHierarchyOutRelationshipsAttributes): [optional] # noqa: E501 - facts (JsonApiDatasetOutRelationshipsFacts): [optional] # noqa: E501 + facts (JsonApiComputedAttributeOutRelationshipsFacts): [optional] # noqa: E501 references (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501 workspace_data_filters (JsonApiDatasetOutRelationshipsWorkspaceDataFilters): [optional] # noqa: E501 """ @@ -249,7 +249,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) aggregated_facts (JsonApiDatasetOutRelationshipsAggregatedFacts): [optional] # noqa: E501 attributes (JsonApiAttributeHierarchyOutRelationshipsAttributes): [optional] # noqa: E501 - facts (JsonApiDatasetOutRelationshipsFacts): [optional] # noqa: E501 + facts (JsonApiComputedAttributeOutRelationshipsFacts): [optional] # noqa: E501 references (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501 workspace_data_filters (JsonApiDatasetOutRelationshipsWorkspaceDataFilters): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_export_definition_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_export_definition_out_includes.py index e59f88259..92cfbf74d 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_export_definition_out_includes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_export_definition_out_includes.py @@ -34,7 +34,7 @@ def lazy_import(): from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta from gooddata_api_client.model.json_api_analytical_dashboard_out_with_links import JsonApiAnalyticalDashboardOutWithLinks from gooddata_api_client.model.json_api_automation_out_with_links import JsonApiAutomationOutWithLinks - from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships + from gooddata_api_client.model.json_api_computed_attribute_out_relationships import JsonApiComputedAttributeOutRelationships from gooddata_api_client.model.json_api_user_identifier_out_with_links import JsonApiUserIdentifierOutWithLinks from gooddata_api_client.model.json_api_visualization_object_out_attributes import JsonApiVisualizationObjectOutAttributes from gooddata_api_client.model.json_api_visualization_object_out_with_links import JsonApiVisualizationObjectOutWithLinks @@ -42,7 +42,7 @@ def lazy_import(): globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta globals()['JsonApiAnalyticalDashboardOutWithLinks'] = JsonApiAnalyticalDashboardOutWithLinks globals()['JsonApiAutomationOutWithLinks'] = JsonApiAutomationOutWithLinks - globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships + globals()['JsonApiComputedAttributeOutRelationships'] = JsonApiComputedAttributeOutRelationships globals()['JsonApiUserIdentifierOutWithLinks'] = JsonApiUserIdentifierOutWithLinks globals()['JsonApiVisualizationObjectOutAttributes'] = JsonApiVisualizationObjectOutAttributes globals()['JsonApiVisualizationObjectOutWithLinks'] = JsonApiVisualizationObjectOutWithLinks @@ -111,7 +111,7 @@ def openapi_types(): lazy_import() return { 'meta': (JsonApiAggregatedFactOutMeta,), # noqa: E501 - 'relationships': (JsonApiMetricOutRelationships,), # noqa: E501 + 'relationships': (JsonApiComputedAttributeOutRelationships,), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 'attributes': (JsonApiVisualizationObjectOutAttributes,), # noqa: E501 'id': (str,), # noqa: E501 @@ -172,7 +172,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 attributes (JsonApiVisualizationObjectOutAttributes): [optional] # noqa: E501 id (str): API identifier of an object. [optional] # noqa: E501 @@ -281,7 +281,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 attributes (JsonApiVisualizationObjectOutAttributes): [optional] # noqa: E501 id (str): API identifier of an object. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_knowledge_recommendation_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_knowledge_recommendation_out_includes.py index 1c1e38b19..0a2612678 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_knowledge_recommendation_out_includes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_knowledge_recommendation_out_includes.py @@ -33,14 +33,14 @@ def lazy_import(): from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta from gooddata_api_client.model.json_api_analytical_dashboard_out_with_links import JsonApiAnalyticalDashboardOutWithLinks + from gooddata_api_client.model.json_api_computed_attribute_out_relationships import JsonApiComputedAttributeOutRelationships from gooddata_api_client.model.json_api_metric_out_attributes import JsonApiMetricOutAttributes - from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships from gooddata_api_client.model.json_api_metric_out_with_links import JsonApiMetricOutWithLinks from gooddata_api_client.model.object_links import ObjectLinks globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta globals()['JsonApiAnalyticalDashboardOutWithLinks'] = JsonApiAnalyticalDashboardOutWithLinks + globals()['JsonApiComputedAttributeOutRelationships'] = JsonApiComputedAttributeOutRelationships globals()['JsonApiMetricOutAttributes'] = JsonApiMetricOutAttributes - globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships globals()['JsonApiMetricOutWithLinks'] = JsonApiMetricOutWithLinks globals()['ObjectLinks'] = ObjectLinks @@ -107,7 +107,7 @@ def openapi_types(): lazy_import() return { 'meta': (JsonApiAggregatedFactOutMeta,), # noqa: E501 - 'relationships': (JsonApiMetricOutRelationships,), # noqa: E501 + 'relationships': (JsonApiComputedAttributeOutRelationships,), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 'attributes': (JsonApiMetricOutAttributes,), # noqa: E501 'id': (str,), # noqa: E501 @@ -168,7 +168,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 attributes (JsonApiMetricOutAttributes): [optional] # noqa: E501 id (str): API identifier of an object. [optional] # noqa: E501 @@ -277,7 +277,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 attributes (JsonApiMetricOutAttributes): [optional] # noqa: E501 id (str): API identifier of an object. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes.py index f28e2c35e..2b3f24922 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes.py @@ -31,8 +31,8 @@ def lazy_import(): - from gooddata_api_client.model.json_api_metric_in_attributes_content import JsonApiMetricInAttributesContent - globals()['JsonApiMetricInAttributesContent'] = JsonApiMetricInAttributesContent + from gooddata_api_client.model.json_api_computed_attribute_in_attributes_content import JsonApiComputedAttributeInAttributesContent + globals()['JsonApiComputedAttributeInAttributesContent'] = JsonApiComputedAttributeInAttributesContent class JsonApiMetricInAttributes(ModelNormal): @@ -94,7 +94,7 @@ def openapi_types(): """ lazy_import() return { - 'content': (JsonApiMetricInAttributesContent,), # noqa: E501 + 'content': (JsonApiComputedAttributeInAttributesContent,), # noqa: E501 'are_relations_valid': (bool,), # noqa: E501 'description': (str,), # noqa: E501 'is_hidden': (bool,), # noqa: E501 @@ -129,7 +129,7 @@ def _from_openapi_data(cls, content, *args, **kwargs): # noqa: E501 """JsonApiMetricInAttributes - a model defined in OpenAPI Args: - content (JsonApiMetricInAttributesContent): + content (JsonApiComputedAttributeInAttributesContent): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -224,7 +224,7 @@ def __init__(self, content, *args, **kwargs): # noqa: E501 """JsonApiMetricInAttributes - a model defined in OpenAPI Args: - content (JsonApiMetricInAttributesContent): + content (JsonApiComputedAttributeInAttributesContent): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out.py index 7ff40e868..2a0bfcf9d 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out.py @@ -32,11 +32,11 @@ def lazy_import(): from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta + from gooddata_api_client.model.json_api_computed_attribute_out_relationships import JsonApiComputedAttributeOutRelationships from gooddata_api_client.model.json_api_metric_out_attributes import JsonApiMetricOutAttributes - from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta + globals()['JsonApiComputedAttributeOutRelationships'] = JsonApiComputedAttributeOutRelationships globals()['JsonApiMetricOutAttributes'] = JsonApiMetricOutAttributes - globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships class JsonApiMetricOut(ModelNormal): @@ -104,7 +104,7 @@ def openapi_types(): 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 'meta': (JsonApiAggregatedFactOutMeta,), # noqa: E501 - 'relationships': (JsonApiMetricOutRelationships,), # noqa: E501 + 'relationships': (JsonApiComputedAttributeOutRelationships,), # noqa: E501 } @cached_property @@ -167,7 +167,7 @@ def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 """ type = kwargs.get('type', "metric") @@ -263,7 +263,7 @@ def __init__(self, attributes, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 """ type = kwargs.get('type', "metric") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_attributes.py index 50a691dde..76c79cbf6 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_attributes.py @@ -31,8 +31,8 @@ def lazy_import(): - from gooddata_api_client.model.json_api_metric_in_attributes_content import JsonApiMetricInAttributesContent - globals()['JsonApiMetricInAttributesContent'] = JsonApiMetricInAttributesContent + from gooddata_api_client.model.json_api_computed_attribute_in_attributes_content import JsonApiComputedAttributeInAttributesContent + globals()['JsonApiComputedAttributeInAttributesContent'] = JsonApiComputedAttributeInAttributesContent class JsonApiMetricOutAttributes(ModelNormal): @@ -112,7 +112,7 @@ def openapi_types(): """ lazy_import() return { - 'content': (JsonApiMetricInAttributesContent,), # noqa: E501 + 'content': (JsonApiComputedAttributeInAttributesContent,), # noqa: E501 'are_relations_valid': (bool,), # noqa: E501 'certification': (str,), # noqa: E501 'certification_message': (str, none_type,), # noqa: E501 @@ -157,7 +157,7 @@ def _from_openapi_data(cls, content, *args, **kwargs): # noqa: E501 """JsonApiMetricOutAttributes - a model defined in OpenAPI Args: - content (JsonApiMetricInAttributesContent): + content (JsonApiComputedAttributeInAttributesContent): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -257,7 +257,7 @@ def __init__(self, content, *args, **kwargs): # noqa: E501 """JsonApiMetricOutAttributes - a model defined in OpenAPI Args: - content (JsonApiMetricInAttributesContent): + content (JsonApiComputedAttributeInAttributesContent): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_document.py index 80593a1b9..4b8229aae 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_document.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_document.py @@ -31,11 +31,11 @@ def lazy_import(): + from gooddata_api_client.model.json_api_computed_attribute_out_includes import JsonApiComputedAttributeOutIncludes from gooddata_api_client.model.json_api_metric_out import JsonApiMetricOut - from gooddata_api_client.model.json_api_metric_out_includes import JsonApiMetricOutIncludes from gooddata_api_client.model.object_links import ObjectLinks + globals()['JsonApiComputedAttributeOutIncludes'] = JsonApiComputedAttributeOutIncludes globals()['JsonApiMetricOut'] = JsonApiMetricOut - globals()['JsonApiMetricOutIncludes'] = JsonApiMetricOutIncludes globals()['ObjectLinks'] = ObjectLinks @@ -95,7 +95,7 @@ def openapi_types(): lazy_import() return { 'data': (JsonApiMetricOut,), # noqa: E501 - 'included': ([JsonApiMetricOutIncludes],), # noqa: E501 + 'included': ([JsonApiComputedAttributeOutIncludes],), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 } @@ -154,7 +154,7 @@ def _from_openapi_data(cls, 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,) - included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501 + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ @@ -245,7 +245,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,) - included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501 + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_list.py index 8af24f41d..239e12fac 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_list.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_list.py @@ -32,11 +32,11 @@ def lazy_import(): from gooddata_api_client.model.json_api_agent_out_list_meta import JsonApiAgentOutListMeta - from gooddata_api_client.model.json_api_metric_out_includes import JsonApiMetricOutIncludes + from gooddata_api_client.model.json_api_computed_attribute_out_includes import JsonApiComputedAttributeOutIncludes from gooddata_api_client.model.json_api_metric_out_with_links import JsonApiMetricOutWithLinks from gooddata_api_client.model.list_links import ListLinks globals()['JsonApiAgentOutListMeta'] = JsonApiAgentOutListMeta - globals()['JsonApiMetricOutIncludes'] = JsonApiMetricOutIncludes + globals()['JsonApiComputedAttributeOutIncludes'] = JsonApiComputedAttributeOutIncludes globals()['JsonApiMetricOutWithLinks'] = JsonApiMetricOutWithLinks globals()['ListLinks'] = ListLinks @@ -99,7 +99,7 @@ def openapi_types(): lazy_import() return { 'data': ([JsonApiMetricOutWithLinks],), # noqa: E501 - 'included': ([JsonApiMetricOutIncludes],), # noqa: E501 + 'included': ([JsonApiComputedAttributeOutIncludes],), # noqa: E501 'links': (ListLinks,), # noqa: E501 'meta': (JsonApiAgentOutListMeta,), # noqa: E501 } @@ -160,7 +160,7 @@ def _from_openapi_data(cls, 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,) - included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501 + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 links (ListLinks): [optional] # noqa: E501 meta (JsonApiAgentOutListMeta): [optional] # noqa: E501 """ @@ -252,7 +252,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,) - included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501 + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 links (ListLinks): [optional] # noqa: E501 meta (JsonApiAgentOutListMeta): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_with_links.py index 97b662ae5..d0299ddfb 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_with_links.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_with_links.py @@ -32,15 +32,15 @@ def lazy_import(): from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta + from gooddata_api_client.model.json_api_computed_attribute_out_relationships import JsonApiComputedAttributeOutRelationships from gooddata_api_client.model.json_api_metric_out import JsonApiMetricOut from gooddata_api_client.model.json_api_metric_out_attributes import JsonApiMetricOutAttributes - from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships from gooddata_api_client.model.object_links import ObjectLinks from gooddata_api_client.model.object_links_container import ObjectLinksContainer globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta + globals()['JsonApiComputedAttributeOutRelationships'] = JsonApiComputedAttributeOutRelationships globals()['JsonApiMetricOut'] = JsonApiMetricOut globals()['JsonApiMetricOutAttributes'] = JsonApiMetricOutAttributes - globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships globals()['ObjectLinks'] = ObjectLinks globals()['ObjectLinksContainer'] = ObjectLinksContainer @@ -110,7 +110,7 @@ def openapi_types(): 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 'meta': (JsonApiAggregatedFactOutMeta,), # noqa: E501 - 'relationships': (JsonApiMetricOutRelationships,), # noqa: E501 + 'relationships': (JsonApiComputedAttributeOutRelationships,), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 } @@ -171,7 +171,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ @@ -281,7 +281,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch_attributes.py index 84714ed0a..8ec0c7a2a 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch_attributes.py @@ -31,8 +31,8 @@ def lazy_import(): - from gooddata_api_client.model.json_api_metric_in_attributes_content import JsonApiMetricInAttributesContent - globals()['JsonApiMetricInAttributesContent'] = JsonApiMetricInAttributesContent + from gooddata_api_client.model.json_api_computed_attribute_in_attributes_content import JsonApiComputedAttributeInAttributesContent + globals()['JsonApiComputedAttributeInAttributesContent'] = JsonApiComputedAttributeInAttributesContent class JsonApiMetricPatchAttributes(ModelNormal): @@ -95,7 +95,7 @@ def openapi_types(): lazy_import() return { 'are_relations_valid': (bool,), # noqa: E501 - 'content': (JsonApiMetricInAttributesContent,), # noqa: E501 + 'content': (JsonApiComputedAttributeInAttributesContent,), # noqa: E501 'description': (str,), # noqa: E501 'is_hidden': (bool,), # noqa: E501 'is_hidden_from_kda': (bool,), # noqa: E501 @@ -160,7 +160,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) are_relations_valid (bool): [optional] # noqa: E501 - content (JsonApiMetricInAttributesContent): [optional] # noqa: E501 + content (JsonApiComputedAttributeInAttributesContent): [optional] # noqa: E501 description (str): [optional] # noqa: E501 is_hidden (bool): [optional] # noqa: E501 is_hidden_from_kda (bool): [optional] # noqa: E501 @@ -252,7 +252,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) are_relations_valid (bool): [optional] # noqa: E501 - content (JsonApiMetricInAttributesContent): [optional] # noqa: E501 + content (JsonApiComputedAttributeInAttributesContent): [optional] # noqa: E501 description (str): [optional] # noqa: E501 is_hidden (bool): [optional] # noqa: E501 is_hidden_from_kda (bool): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_user_data_filter_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_data_filter_out_includes.py index e1ab25c2b..363440796 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_user_data_filter_out_includes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_data_filter_out_includes.py @@ -33,6 +33,7 @@ def lazy_import(): from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta from gooddata_api_client.model.json_api_attribute_out_with_links import JsonApiAttributeOutWithLinks + from gooddata_api_client.model.json_api_computed_attribute_out_with_links import JsonApiComputedAttributeOutWithLinks from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks from gooddata_api_client.model.json_api_fact_out_with_links import JsonApiFactOutWithLinks from gooddata_api_client.model.json_api_label_out_with_links import JsonApiLabelOutWithLinks @@ -45,6 +46,7 @@ def lazy_import(): from gooddata_api_client.model.object_links import ObjectLinks globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta globals()['JsonApiAttributeOutWithLinks'] = JsonApiAttributeOutWithLinks + globals()['JsonApiComputedAttributeOutWithLinks'] = JsonApiComputedAttributeOutWithLinks globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks globals()['JsonApiFactOutWithLinks'] = JsonApiFactOutWithLinks globals()['JsonApiLabelOutWithLinks'] = JsonApiLabelOutWithLinks @@ -366,6 +368,7 @@ def _composed_schemas(): ], 'oneOf': [ JsonApiAttributeOutWithLinks, + JsonApiComputedAttributeOutWithLinks, JsonApiDatasetOutWithLinks, JsonApiFactOutWithLinks, JsonApiLabelOutWithLinks, diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_user_data_filter_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_data_filter_out_relationships.py index 9c0c07f8e..daf33c817 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_user_data_filter_out_relationships.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_data_filter_out_relationships.py @@ -36,7 +36,8 @@ def lazy_import(): from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_metrics import JsonApiAnalyticalDashboardOutRelationshipsMetrics from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_parameters import JsonApiAnalyticalDashboardOutRelationshipsParameters from gooddata_api_client.model.json_api_attribute_hierarchy_out_relationships_attributes import JsonApiAttributeHierarchyOutRelationshipsAttributes - from gooddata_api_client.model.json_api_dataset_out_relationships_facts import JsonApiDatasetOutRelationshipsFacts + from gooddata_api_client.model.json_api_computed_attribute_out_relationships_computed_attributes import JsonApiComputedAttributeOutRelationshipsComputedAttributes + from gooddata_api_client.model.json_api_computed_attribute_out_relationships_facts import JsonApiComputedAttributeOutRelationshipsFacts from gooddata_api_client.model.json_api_filter_view_in_relationships_user import JsonApiFilterViewInRelationshipsUser from gooddata_api_client.model.json_api_organization_out_relationships_bootstrap_user_group import JsonApiOrganizationOutRelationshipsBootstrapUserGroup globals()['JsonApiAnalyticalDashboardOutRelationshipsDatasets'] = JsonApiAnalyticalDashboardOutRelationshipsDatasets @@ -44,7 +45,8 @@ def lazy_import(): globals()['JsonApiAnalyticalDashboardOutRelationshipsMetrics'] = JsonApiAnalyticalDashboardOutRelationshipsMetrics globals()['JsonApiAnalyticalDashboardOutRelationshipsParameters'] = JsonApiAnalyticalDashboardOutRelationshipsParameters globals()['JsonApiAttributeHierarchyOutRelationshipsAttributes'] = JsonApiAttributeHierarchyOutRelationshipsAttributes - globals()['JsonApiDatasetOutRelationshipsFacts'] = JsonApiDatasetOutRelationshipsFacts + globals()['JsonApiComputedAttributeOutRelationshipsComputedAttributes'] = JsonApiComputedAttributeOutRelationshipsComputedAttributes + globals()['JsonApiComputedAttributeOutRelationshipsFacts'] = JsonApiComputedAttributeOutRelationshipsFacts globals()['JsonApiFilterViewInRelationshipsUser'] = JsonApiFilterViewInRelationshipsUser globals()['JsonApiOrganizationOutRelationshipsBootstrapUserGroup'] = JsonApiOrganizationOutRelationshipsBootstrapUserGroup @@ -103,8 +105,9 @@ def openapi_types(): lazy_import() return { 'attributes': (JsonApiAttributeHierarchyOutRelationshipsAttributes,), # noqa: E501 + 'computed_attributes': (JsonApiComputedAttributeOutRelationshipsComputedAttributes,), # noqa: E501 'datasets': (JsonApiAnalyticalDashboardOutRelationshipsDatasets,), # noqa: E501 - 'facts': (JsonApiDatasetOutRelationshipsFacts,), # noqa: E501 + 'facts': (JsonApiComputedAttributeOutRelationshipsFacts,), # noqa: E501 'labels': (JsonApiAnalyticalDashboardOutRelationshipsLabels,), # noqa: E501 'metrics': (JsonApiAnalyticalDashboardOutRelationshipsMetrics,), # noqa: E501 'parameters': (JsonApiAnalyticalDashboardOutRelationshipsParameters,), # noqa: E501 @@ -119,6 +122,7 @@ def discriminator(): attribute_map = { 'attributes': 'attributes', # noqa: E501 + 'computed_attributes': 'computedAttributes', # noqa: E501 'datasets': 'datasets', # noqa: E501 'facts': 'facts', # noqa: E501 'labels': 'labels', # noqa: E501 @@ -170,8 +174,9 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) attributes (JsonApiAttributeHierarchyOutRelationshipsAttributes): [optional] # noqa: E501 + computed_attributes (JsonApiComputedAttributeOutRelationshipsComputedAttributes): [optional] # noqa: E501 datasets (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501 - facts (JsonApiDatasetOutRelationshipsFacts): [optional] # noqa: E501 + facts (JsonApiComputedAttributeOutRelationshipsFacts): [optional] # noqa: E501 labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [optional] # noqa: E501 metrics (JsonApiAnalyticalDashboardOutRelationshipsMetrics): [optional] # noqa: E501 parameters (JsonApiAnalyticalDashboardOutRelationshipsParameters): [optional] # noqa: E501 @@ -263,8 +268,9 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) attributes (JsonApiAttributeHierarchyOutRelationshipsAttributes): [optional] # noqa: E501 + computed_attributes (JsonApiComputedAttributeOutRelationshipsComputedAttributes): [optional] # noqa: E501 datasets (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501 - facts (JsonApiDatasetOutRelationshipsFacts): [optional] # noqa: E501 + facts (JsonApiComputedAttributeOutRelationshipsFacts): [optional] # noqa: E501 labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [optional] # noqa: E501 metrics (JsonApiAnalyticalDashboardOutRelationshipsMetrics): [optional] # noqa: E501 parameters (JsonApiAnalyticalDashboardOutRelationshipsParameters): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out.py index 5cbb922c9..dd60c8212 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out.py @@ -32,10 +32,10 @@ def lazy_import(): from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta - from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships + from gooddata_api_client.model.json_api_computed_attribute_out_relationships import JsonApiComputedAttributeOutRelationships from gooddata_api_client.model.json_api_visualization_object_out_attributes import JsonApiVisualizationObjectOutAttributes globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta - globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships + globals()['JsonApiComputedAttributeOutRelationships'] = JsonApiComputedAttributeOutRelationships globals()['JsonApiVisualizationObjectOutAttributes'] = JsonApiVisualizationObjectOutAttributes @@ -104,7 +104,7 @@ def openapi_types(): 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 'meta': (JsonApiAggregatedFactOutMeta,), # noqa: E501 - 'relationships': (JsonApiMetricOutRelationships,), # noqa: E501 + 'relationships': (JsonApiComputedAttributeOutRelationships,), # noqa: E501 } @cached_property @@ -167,7 +167,7 @@ def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 """ type = kwargs.get('type', "visualizationObject") @@ -263,7 +263,7 @@ def __init__(self, attributes, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 """ type = kwargs.get('type', "visualizationObject") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_document.py index 60ba9cea1..bcfb2d454 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_document.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_document.py @@ -31,10 +31,10 @@ def lazy_import(): - from gooddata_api_client.model.json_api_metric_out_includes import JsonApiMetricOutIncludes + from gooddata_api_client.model.json_api_computed_attribute_out_includes import JsonApiComputedAttributeOutIncludes from gooddata_api_client.model.json_api_visualization_object_out import JsonApiVisualizationObjectOut from gooddata_api_client.model.object_links import ObjectLinks - globals()['JsonApiMetricOutIncludes'] = JsonApiMetricOutIncludes + globals()['JsonApiComputedAttributeOutIncludes'] = JsonApiComputedAttributeOutIncludes globals()['JsonApiVisualizationObjectOut'] = JsonApiVisualizationObjectOut globals()['ObjectLinks'] = ObjectLinks @@ -95,7 +95,7 @@ def openapi_types(): lazy_import() return { 'data': (JsonApiVisualizationObjectOut,), # noqa: E501 - 'included': ([JsonApiMetricOutIncludes],), # noqa: E501 + 'included': ([JsonApiComputedAttributeOutIncludes],), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 } @@ -154,7 +154,7 @@ def _from_openapi_data(cls, 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,) - included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501 + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ @@ -245,7 +245,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,) - included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501 + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_list.py index a1f161bef..955b3a210 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_list.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_list.py @@ -32,11 +32,11 @@ def lazy_import(): from gooddata_api_client.model.json_api_agent_out_list_meta import JsonApiAgentOutListMeta - from gooddata_api_client.model.json_api_metric_out_includes import JsonApiMetricOutIncludes + from gooddata_api_client.model.json_api_computed_attribute_out_includes import JsonApiComputedAttributeOutIncludes from gooddata_api_client.model.json_api_visualization_object_out_with_links import JsonApiVisualizationObjectOutWithLinks from gooddata_api_client.model.list_links import ListLinks globals()['JsonApiAgentOutListMeta'] = JsonApiAgentOutListMeta - globals()['JsonApiMetricOutIncludes'] = JsonApiMetricOutIncludes + globals()['JsonApiComputedAttributeOutIncludes'] = JsonApiComputedAttributeOutIncludes globals()['JsonApiVisualizationObjectOutWithLinks'] = JsonApiVisualizationObjectOutWithLinks globals()['ListLinks'] = ListLinks @@ -99,7 +99,7 @@ def openapi_types(): lazy_import() return { 'data': ([JsonApiVisualizationObjectOutWithLinks],), # noqa: E501 - 'included': ([JsonApiMetricOutIncludes],), # noqa: E501 + 'included': ([JsonApiComputedAttributeOutIncludes],), # noqa: E501 'links': (ListLinks,), # noqa: E501 'meta': (JsonApiAgentOutListMeta,), # noqa: E501 } @@ -160,7 +160,7 @@ def _from_openapi_data(cls, 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,) - included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501 + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 links (ListLinks): [optional] # noqa: E501 meta (JsonApiAgentOutListMeta): [optional] # noqa: E501 """ @@ -252,7 +252,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,) - included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501 + included ([JsonApiComputedAttributeOutIncludes]): Included resources. [optional] # noqa: E501 links (ListLinks): [optional] # noqa: E501 meta (JsonApiAgentOutListMeta): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_with_links.py index a5a3ccc57..bd40f69bd 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_with_links.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_with_links.py @@ -32,13 +32,13 @@ def lazy_import(): from gooddata_api_client.model.json_api_aggregated_fact_out_meta import JsonApiAggregatedFactOutMeta - from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships + from gooddata_api_client.model.json_api_computed_attribute_out_relationships import JsonApiComputedAttributeOutRelationships from gooddata_api_client.model.json_api_visualization_object_out import JsonApiVisualizationObjectOut from gooddata_api_client.model.json_api_visualization_object_out_attributes import JsonApiVisualizationObjectOutAttributes from gooddata_api_client.model.object_links import ObjectLinks from gooddata_api_client.model.object_links_container import ObjectLinksContainer globals()['JsonApiAggregatedFactOutMeta'] = JsonApiAggregatedFactOutMeta - globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships + globals()['JsonApiComputedAttributeOutRelationships'] = JsonApiComputedAttributeOutRelationships globals()['JsonApiVisualizationObjectOut'] = JsonApiVisualizationObjectOut globals()['JsonApiVisualizationObjectOutAttributes'] = JsonApiVisualizationObjectOutAttributes globals()['ObjectLinks'] = ObjectLinks @@ -110,7 +110,7 @@ def openapi_types(): 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 'meta': (JsonApiAggregatedFactOutMeta,), # noqa: E501 - 'relationships': (JsonApiMetricOutRelationships,), # noqa: E501 + 'relationships': (JsonApiComputedAttributeOutRelationships,), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 } @@ -171,7 +171,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ @@ -281,7 +281,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) meta (JsonApiAggregatedFactOutMeta): [optional] # noqa: E501 - relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501 + relationships (JsonApiComputedAttributeOutRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/set_certification_request.py b/gooddata-api-client/gooddata_api_client/model/set_certification_request.py index 2d9637ae2..18a56d17c 100644 --- a/gooddata-api-client/gooddata_api_client/model/set_certification_request.py +++ b/gooddata-api-client/gooddata_api_client/model/set_certification_request.py @@ -60,6 +60,7 @@ class SetCertificationRequest(ModelNormal): 'METRIC': "metric", 'VISUALIZATIONOBJECT': "visualizationObject", 'ANALYTICALDASHBOARD': "analyticalDashboard", + 'COMPUTEDATTRIBUTE': "computedAttribute", }, ('status',): { 'None': None, diff --git a/gooddata-api-client/gooddata_api_client/model/validate_by_item.py b/gooddata-api-client/gooddata_api_client/model/validate_by_item.py index 0ce8015d4..6fb113b12 100644 --- a/gooddata-api-client/gooddata_api_client/model/validate_by_item.py +++ b/gooddata-api-client/gooddata_api_client/model/validate_by_item.py @@ -61,7 +61,7 @@ class ValidateByItem(ModelNormal): validations = { ('type',): { 'regex': { - 'pattern': r'^(label)|(attribute)|(fact)|(metric)$', # noqa: E501 + 'pattern': r'^(label|attribute|computedAttribute|fact|metric)$', # noqa: E501 }, }, } @@ -113,7 +113,7 @@ def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 Args: id (str): Specifies entity used for valid elements computation. - type (str): Specifies entity type which could be label, attribute, fact, or metric. + type (str): Specifies entity type which could be label, attribute, computedAttribute, fact, or metric. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -204,7 +204,7 @@ def __init__(self, id, type, *args, **kwargs): # noqa: E501 Args: id (str): Specifies entity used for valid elements computation. - type (str): Specifies entity type which could be label, attribute, fact, or metric. + type (str): Specifies entity type which could be label, attribute, computedAttribute, fact, or metric. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/models/__init__.py b/gooddata-api-client/gooddata_api_client/models/__init__.py index 254b4f398..33e4a3a8a 100644 --- a/gooddata-api-client/gooddata_api_client/models/__init__.py +++ b/gooddata-api-client/gooddata_api_client/models/__init__.py @@ -241,6 +241,8 @@ from gooddata_api_client.model.declarative_calendar import DeclarativeCalendar from gooddata_api_client.model.declarative_color_palette import DeclarativeColorPalette from gooddata_api_client.model.declarative_column import DeclarativeColumn +from gooddata_api_client.model.declarative_computed_attribute import DeclarativeComputedAttribute +from gooddata_api_client.model.declarative_computed_attribute_content import DeclarativeComputedAttributeContent from gooddata_api_client.model.declarative_csp_directive import DeclarativeCspDirective from gooddata_api_client.model.declarative_custom_application_setting import DeclarativeCustomApplicationSetting from gooddata_api_client.model.declarative_custom_geo_collection import DeclarativeCustomGeoCollection @@ -566,6 +568,26 @@ from gooddata_api_client.model.json_api_color_palette_patch import JsonApiColorPalettePatch from gooddata_api_client.model.json_api_color_palette_patch_attributes import JsonApiColorPalettePatchAttributes from gooddata_api_client.model.json_api_color_palette_patch_document import JsonApiColorPalettePatchDocument +from gooddata_api_client.model.json_api_computed_attribute_in import JsonApiComputedAttributeIn +from gooddata_api_client.model.json_api_computed_attribute_in_attributes import JsonApiComputedAttributeInAttributes +from gooddata_api_client.model.json_api_computed_attribute_in_attributes_content import JsonApiComputedAttributeInAttributesContent +from gooddata_api_client.model.json_api_computed_attribute_in_document import JsonApiComputedAttributeInDocument +from gooddata_api_client.model.json_api_computed_attribute_linkage import JsonApiComputedAttributeLinkage +from gooddata_api_client.model.json_api_computed_attribute_out import JsonApiComputedAttributeOut +from gooddata_api_client.model.json_api_computed_attribute_out_attributes import JsonApiComputedAttributeOutAttributes +from gooddata_api_client.model.json_api_computed_attribute_out_document import JsonApiComputedAttributeOutDocument +from gooddata_api_client.model.json_api_computed_attribute_out_includes import JsonApiComputedAttributeOutIncludes +from gooddata_api_client.model.json_api_computed_attribute_out_list import JsonApiComputedAttributeOutList +from gooddata_api_client.model.json_api_computed_attribute_out_relationships import JsonApiComputedAttributeOutRelationships +from gooddata_api_client.model.json_api_computed_attribute_out_relationships_computed_attributes import JsonApiComputedAttributeOutRelationshipsComputedAttributes +from gooddata_api_client.model.json_api_computed_attribute_out_relationships_facts import JsonApiComputedAttributeOutRelationshipsFacts +from gooddata_api_client.model.json_api_computed_attribute_out_with_links import JsonApiComputedAttributeOutWithLinks +from gooddata_api_client.model.json_api_computed_attribute_patch import JsonApiComputedAttributePatch +from gooddata_api_client.model.json_api_computed_attribute_patch_attributes import JsonApiComputedAttributePatchAttributes +from gooddata_api_client.model.json_api_computed_attribute_patch_document import JsonApiComputedAttributePatchDocument +from gooddata_api_client.model.json_api_computed_attribute_post_optional_id import JsonApiComputedAttributePostOptionalId +from gooddata_api_client.model.json_api_computed_attribute_post_optional_id_document import JsonApiComputedAttributePostOptionalIdDocument +from gooddata_api_client.model.json_api_computed_attribute_to_many_linkage import JsonApiComputedAttributeToManyLinkage from gooddata_api_client.model.json_api_cookie_security_configuration_in import JsonApiCookieSecurityConfigurationIn from gooddata_api_client.model.json_api_cookie_security_configuration_in_attributes import JsonApiCookieSecurityConfigurationInAttributes from gooddata_api_client.model.json_api_cookie_security_configuration_in_document import JsonApiCookieSecurityConfigurationInDocument @@ -660,7 +682,6 @@ from gooddata_api_client.model.json_api_dataset_out_list import JsonApiDatasetOutList from gooddata_api_client.model.json_api_dataset_out_relationships import JsonApiDatasetOutRelationships from gooddata_api_client.model.json_api_dataset_out_relationships_aggregated_facts import JsonApiDatasetOutRelationshipsAggregatedFacts -from gooddata_api_client.model.json_api_dataset_out_relationships_facts import JsonApiDatasetOutRelationshipsFacts from gooddata_api_client.model.json_api_dataset_out_relationships_workspace_data_filters import JsonApiDatasetOutRelationshipsWorkspaceDataFilters from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks from gooddata_api_client.model.json_api_dataset_patch import JsonApiDatasetPatch @@ -854,15 +875,12 @@ from gooddata_api_client.model.json_api_memory_item_post_optional_id_document import JsonApiMemoryItemPostOptionalIdDocument from gooddata_api_client.model.json_api_metric_in import JsonApiMetricIn from gooddata_api_client.model.json_api_metric_in_attributes import JsonApiMetricInAttributes -from gooddata_api_client.model.json_api_metric_in_attributes_content import JsonApiMetricInAttributesContent from gooddata_api_client.model.json_api_metric_in_document import JsonApiMetricInDocument from gooddata_api_client.model.json_api_metric_linkage import JsonApiMetricLinkage from gooddata_api_client.model.json_api_metric_out import JsonApiMetricOut from gooddata_api_client.model.json_api_metric_out_attributes import JsonApiMetricOutAttributes from gooddata_api_client.model.json_api_metric_out_document import JsonApiMetricOutDocument -from gooddata_api_client.model.json_api_metric_out_includes import JsonApiMetricOutIncludes from gooddata_api_client.model.json_api_metric_out_list import JsonApiMetricOutList -from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships from gooddata_api_client.model.json_api_metric_out_with_links import JsonApiMetricOutWithLinks from gooddata_api_client.model.json_api_metric_patch import JsonApiMetricPatch from gooddata_api_client.model.json_api_metric_patch_attributes import JsonApiMetricPatchAttributes diff --git a/packages/gooddata-sdk/src/gooddata_sdk/__init__.py b/packages/gooddata-sdk/src/gooddata_sdk/__init__.py index f33e24a5a..f9dfe3a80 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/__init__.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/__init__.py @@ -222,6 +222,8 @@ from gooddata_sdk.catalog.workspace.content_service import CatalogWorkspaceContent, CatalogWorkspaceContentService from gooddata_sdk.catalog.workspace.declarative_model.workspace.analytics_model.analytics_model import ( CatalogDeclarativeAnalytics, + CatalogDeclarativeComputedAttribute, + CatalogDeclarativeComputedAttributeContent, CatalogDeclarativeMemoryItem, CatalogDeclarativeMetric, CatalogDeclarativeParameter, @@ -270,6 +272,13 @@ CatalogDeclarativeWorkspaceModel, CatalogDeclarativeWorkspaces, ) +from gooddata_sdk.catalog.workspace.entity_model.content_objects.computed_attribute import ( + CatalogComputedAttribute, + CatalogComputedAttributeAttributes, + CatalogComputedAttributeContent, + CatalogComputedAttributeDocument, + CatalogComputedAttributePostDocument, +) from gooddata_sdk.catalog.workspace.entity_model.content_objects.dataset import ( CatalogAttribute, CatalogDataset, diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/content_service.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/content_service.py index 7be97bee2..ce07240f6 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/content_service.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/content_service.py @@ -553,7 +553,12 @@ def _prepare_afm_for_availability(items: list[ValidObjectTypes]) -> afm_models.A return compute_model_to_api_model(attributes=attributes, metrics=metrics, filters=filters) - def compute_valid_objects(self, workspace_id: str, ctx: ValidObjectsInputType) -> ValidObjects: + def compute_valid_objects( + self, + workspace_id: str, + ctx: ValidObjectsInputType, + types: list[str] | None = None, + ) -> ValidObjects: """ Returns attributes, facts, and metrics which are valid to add to a context that already contains some entities from the semantic model. The entities are typically used to compute analytics and @@ -565,6 +570,9 @@ def compute_valid_objects(self, workspace_id: str, ctx: ValidObjectsInputType) - Workspace identification string e.g. "demo" ctx (ValidObjectsInputType): items already in context. you can specify context in one of the following ways: + types (Optional[list[str]]): + object types to ask for. Defaults to facts, attributes and measures. + Pass "computedAttributes" as well to include computed attributes. Returns: ValidObjects: @@ -578,7 +586,9 @@ def compute_valid_objects(self, workspace_id: str, ctx: ValidObjectsInputType) - else: afm = self._prepare_afm_for_availability([ctx]) - query = afm_models.AfmValidObjectsQuery(afm=afm, types=["facts", "attributes", "measures"]) + query = afm_models.AfmValidObjectsQuery( + afm=afm, types=types if types is not None else ["facts", "attributes", "measures"] + ) response = self._actions_api.compute_valid_objects(workspace_id=workspace_id, afm_valid_objects_query=query) by_type: dict[str, set[str]] = dict() diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py index f5406ba13..0e7e460e5 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py @@ -11,6 +11,8 @@ from gooddata_api_client.model.declarative_analytics import DeclarativeAnalytics from gooddata_api_client.model.declarative_analytics_layer import DeclarativeAnalyticsLayer from gooddata_api_client.model.declarative_attribute_hierarchy import DeclarativeAttributeHierarchy +from gooddata_api_client.model.declarative_computed_attribute import DeclarativeComputedAttribute +from gooddata_api_client.model.declarative_computed_attribute_content import DeclarativeComputedAttributeContent from gooddata_api_client.model.declarative_dashboard_plugin import DeclarativeDashboardPlugin from gooddata_api_client.model.declarative_filter_context import DeclarativeFilterContext from gooddata_api_client.model.declarative_memory_item import DeclarativeMemoryItem @@ -49,6 +51,7 @@ LAYOUT_METRICS_DIR = "metrics" LAYOUT_VISUALIZATION_OBJECTS_DIR = "visualization_objects" ATTRIBUTE_HIERARCHY_OBJECTS_DIR = "attribute_hierarchy_objects" +COMPUTED_ATTRIBUTES_DIR = "computed_attributes" EXPORT_DEFINITION_DIR = "export_definitions" MEMORY_ITEMS_DIR = "memory_items" PARAMETERS_DIR = "parameters" @@ -77,6 +80,10 @@ class CatalogDeclarativeAnalyticsLayer(Base): analytical_dashboards: list[CatalogDeclarativeAnalyticalDashboard] = field(factory=list) analytical_dashboard_extensions: list[CatalogDeclarativeAnalyticalDashboardExtension] = field(factory=list) attribute_hierarchies: list[CatalogDeclarativeAttributeHierarchy] = field(factory=list) + # Optional, unlike its siblings: the backend omits `computedAttributes` from the layout + # entirely when a workspace has none (it returns `[]` for attributeHierarchies and the + # rest). Defaulting to an empty list would make the SDK emit a key the API never sent. + computed_attributes: list[CatalogDeclarativeComputedAttribute] | None = None dashboard_plugins: list[CatalogDeclarativeDashboardPlugin] = field(factory=list) filter_contexts: list[CatalogDeclarativeFilterContext] = field(factory=list) metrics: list[CatalogDeclarativeMetric] = field(factory=list) @@ -137,6 +144,12 @@ def get_attribute_hierarchy_folder(analytics_model_folder: Path) -> Path: create_directory(folder) return folder + @staticmethod + def get_computed_attributes_folder(analytics_model_folder: Path) -> Path: + folder = analytics_model_folder / COMPUTED_ATTRIBUTES_DIR + create_directory(folder) + return folder + @staticmethod def get_export_definition_folder(analytics_model_folder: Path) -> Path: folder = analytics_model_folder / EXPORT_DEFINITION_DIR @@ -165,6 +178,7 @@ def store_to_disk(self, workspace_folder: Path, sort: bool = False) -> None: metrics_folder = self.get_metrics_folder(analytics_model_folder) visualization_objects_folder = self.get_visualization_objects_folder(analytics_model_folder) attribute_hierarchy_folder = self.get_attribute_hierarchy_folder(analytics_model_folder) + computed_attributes_folder = self.get_computed_attributes_folder(analytics_model_folder) export_definition_folder = self.get_export_definition_folder(analytical_dashboards_folder) memory_item_folder = self.get_memory_item_folder(analytics_model_folder) parameters_folder = self.get_parameters_folder(analytics_model_folder) @@ -190,6 +204,9 @@ def store_to_disk(self, workspace_folder: Path, sort: bool = False) -> None: for attribute_hierarchy in self.attribute_hierarchies: attribute_hierarchy.store_to_disk(attribute_hierarchy_folder, sort=sort) + for computed_attribute in self.computed_attributes or []: + computed_attribute.store_to_disk(computed_attributes_folder, sort=sort) + for export_definition in self.export_definitions: export_definition.store_to_disk(export_definition_folder, sort=sort) @@ -209,6 +226,7 @@ def load_from_disk(cls, workspace_folder: Path) -> CatalogDeclarativeAnalyticsLa metrics_folder = cls.get_metrics_folder(analytics_model_folder) visualization_objects_folder = cls.get_visualization_objects_folder(analytics_model_folder) attribute_hierarchy_folder = cls.get_attribute_hierarchy_folder(analytics_model_folder) + computed_attributes_folder = cls.get_computed_attributes_folder(analytics_model_folder) export_definition_folder = cls.get_export_definition_folder(analytical_dashboards_folder) memory_item_folder = cls.get_memory_item_folder(analytics_model_folder) parameters_folder = cls.get_parameters_folder(analytics_model_folder) @@ -220,6 +238,7 @@ def load_from_disk(cls, workspace_folder: Path) -> CatalogDeclarativeAnalyticsLa metric_files = get_sorted_yaml_files(metrics_folder) visualization_object_files = get_sorted_yaml_files(visualization_objects_folder) attribute_hierarchy_files = get_sorted_yaml_files(attribute_hierarchy_folder) + computed_attribute_files = get_sorted_yaml_files(computed_attributes_folder) export_definition_files = get_sorted_yaml_files(export_definition_folder) memory_item_files = get_sorted_yaml_files(memory_item_folder) parameter_files = get_sorted_yaml_files(parameters_folder) @@ -249,6 +268,10 @@ def load_from_disk(cls, workspace_folder: Path) -> CatalogDeclarativeAnalyticsLa CatalogDeclarativeAttributeHierarchy.load_from_disk(attribute_hierarchy_file) for attribute_hierarchy_file in attribute_hierarchy_files ] + computed_attributes = [ + CatalogDeclarativeComputedAttribute.load_from_disk(computed_attribute_file) + for computed_attribute_file in computed_attribute_files + ] export_definitions = [ CatalogDeclarativeExportDefinition.load_from_disk(export_definition_file) for export_definition_file in export_definition_files @@ -261,6 +284,7 @@ def load_from_disk(cls, workspace_folder: Path) -> CatalogDeclarativeAnalyticsLa analytical_dashboards=analytical_dashboards, analytical_dashboard_extensions=analytical_dashboard_extensions, attribute_hierarchies=attribute_hierarchy_objects, + computed_attributes=computed_attributes or None, dashboard_plugins=dashboard_plugins, filter_contexts=filter_contexts, metrics=metrics, @@ -350,6 +374,35 @@ def client_class() -> type[DeclarativeAttributeHierarchy]: return DeclarativeAttributeHierarchy +@define(kw_only=True) +class CatalogDeclarativeComputedAttributeContent(Base): + maql: str + format: str | None = None + metric_type: str | None = None + + @staticmethod + def client_class() -> type[DeclarativeComputedAttributeContent]: + return DeclarativeComputedAttributeContent + + +@define(kw_only=True) +class CatalogDeclarativeComputedAttribute(CatalogAnalyticsBaseMeta): + title: str + content: CatalogDeclarativeComputedAttributeContent + description: str | None = None + tags: list[str] | None = None + data_type: str | None = None + locale: str | None = None + value_type: str | None = None + is_hidden: bool | None = None + is_nullable: bool | None = None + null_value: str | None = None + + @staticmethod + def client_class() -> type[DeclarativeComputedAttribute]: + return DeclarativeComputedAttribute + + @define(kw_only=True) class CatalogDeclarativeMemoryItem(CatalogAnalyticsBaseMeta): instruction: str diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/entity_model/content_objects/computed_attribute.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/entity_model/content_objects/computed_attribute.py new file mode 100644 index 000000000..5507e4986 --- /dev/null +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/entity_model/content_objects/computed_attribute.py @@ -0,0 +1,132 @@ +# (C) 2026 GoodData Corporation +from __future__ import annotations + +from attrs import define +from gooddata_api_client.model.json_api_computed_attribute_in import JsonApiComputedAttributeIn +from gooddata_api_client.model.json_api_computed_attribute_in_attributes import JsonApiComputedAttributeInAttributes +from gooddata_api_client.model.json_api_computed_attribute_in_attributes_content import ( + JsonApiComputedAttributeInAttributesContent, +) +from gooddata_api_client.model.json_api_computed_attribute_in_document import JsonApiComputedAttributeInDocument +from gooddata_api_client.model.json_api_computed_attribute_post_optional_id import ( + JsonApiComputedAttributePostOptionalId, +) +from gooddata_api_client.model.json_api_computed_attribute_post_optional_id_document import ( + JsonApiComputedAttributePostOptionalIdDocument, +) + +from gooddata_sdk.catalog.base import Base + + +@define(kw_only=True) +class CatalogComputedAttributeDocument(Base): + data: CatalogComputedAttribute + + @staticmethod + def client_class() -> type[JsonApiComputedAttributeInDocument]: + return JsonApiComputedAttributeInDocument + + def to_api(self) -> JsonApiComputedAttributeInDocument: + return JsonApiComputedAttributeInDocument(data=self.data.to_api()) + + +@define(kw_only=True) +class CatalogComputedAttributePostDocument(Base): + """Request body of the create (POST) endpoint, where the id is optional. + + Unlike filter views, computed attributes have a dedicated POST schema: the backend + generates the id when it is omitted, so the create endpoint takes this document and + only the update (PUT) endpoint takes CatalogComputedAttributeDocument. + """ + + data: CatalogComputedAttribute + + @staticmethod + def client_class() -> type[JsonApiComputedAttributePostOptionalIdDocument]: + return JsonApiComputedAttributePostOptionalIdDocument + + def to_api(self) -> JsonApiComputedAttributePostOptionalIdDocument: + return JsonApiComputedAttributePostOptionalIdDocument(data=self.data.to_post_api()) + + +@define(kw_only=True) +class CatalogComputedAttribute(Base): + # None only when creating a computed attribute whose id the backend generates. + id: str | None = None + attributes: CatalogComputedAttributeAttributes + + @staticmethod + def client_class() -> type[JsonApiComputedAttributeIn]: + return JsonApiComputedAttributeIn + + @classmethod + def init( + cls, + maql: str, + computed_attribute_id: str | None = None, + title: str | None = None, + description: str | None = None, + format: str | None = None, + metric_type: str | None = None, + data_type: str | None = None, + locale: str | None = None, + value_type: str | None = None, + is_hidden: bool | None = None, + is_nullable: bool | None = None, + null_value: str | None = None, + tags: list[str] | None = None, + are_relations_valid: bool | None = None, + ) -> CatalogComputedAttribute: + attributes = CatalogComputedAttributeAttributes( + content=CatalogComputedAttributeContent(maql=maql, format=format, metric_type=metric_type), + title=title, + description=description, + data_type=data_type, + locale=locale, + value_type=value_type, + is_hidden=is_hidden, + is_nullable=is_nullable, + null_value=null_value, + tags=tags, + are_relations_valid=are_relations_valid, + ) + return cls(id=computed_attribute_id, attributes=attributes) + + def to_api(self) -> JsonApiComputedAttributeIn: + if self.id is None: + raise ValueError("Computed attribute id is required for an update, use to_post_api() to create one.") + return JsonApiComputedAttributeIn(id=self.id, attributes=self.attributes.to_api()) + + def to_post_api(self) -> JsonApiComputedAttributePostOptionalId: + optional_id = {} if self.id is None else {"id": self.id} + return JsonApiComputedAttributePostOptionalId(attributes=self.attributes.to_api(), **optional_id) + + +@define(kw_only=True) +class CatalogComputedAttributeAttributes(Base): + content: CatalogComputedAttributeContent + title: str | None = None + description: str | None = None + data_type: str | None = None + locale: str | None = None + value_type: str | None = None + is_hidden: bool | None = None + is_nullable: bool | None = None + null_value: str | None = None + tags: list[str] | None = None + are_relations_valid: bool | None = None + + @staticmethod + def client_class() -> type[JsonApiComputedAttributeInAttributes]: + return JsonApiComputedAttributeInAttributes + + +@define(kw_only=True) +class CatalogComputedAttributeContent(Base): + maql: str + format: str | None = None + metric_type: str | None = None + + @staticmethod + def client_class() -> type[JsonApiComputedAttributeInAttributesContent]: + return JsonApiComputedAttributeInAttributesContent diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/service.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/service.py index 4faba1cd5..c496fa4ab 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/service.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/service.py @@ -30,6 +30,11 @@ CatalogDeclarativeWorkspaces, get_workspace_folder, ) +from gooddata_sdk.catalog.workspace.entity_model.content_objects.computed_attribute import ( + CatalogComputedAttribute, + CatalogComputedAttributeDocument, + CatalogComputedAttributePostDocument, +) from gooddata_sdk.catalog.workspace.entity_model.content_objects.workspace_setting import CatalogWorkspaceSetting from gooddata_sdk.catalog.workspace.entity_model.filter_view import ( CatalogFilterView, @@ -1507,6 +1512,105 @@ def delete_filter_view(self, workspace_id: str, filter_view_id: str) -> None: """ self._entities_api.delete_entity_filter_views(workspace_id=workspace_id, object_id=filter_view_id) + def list_computed_attributes(self, workspace_id: str) -> list[CatalogComputedAttribute]: + """List all computed attributes. + + Args: + workspace_id (str): + String containing id of the workspace. + + Returns: + list[CatalogComputedAttribute]: + List of computed attribute entities. + """ + get_computed_attributes = functools.partial( + self._entities_api.get_all_entities_computed_attributes, + workspace_id, + _check_return_type=False, + ) + computed_attributes = load_all_entities_dict(get_computed_attributes, camel_case=False) + return [CatalogComputedAttribute.from_dict(ca, camel_case=False) for ca in computed_attributes["data"]] + + def create_or_update_computed_attribute( + self, workspace_id: str, computed_attribute: CatalogComputedAttribute + ) -> UpsertOutcome: + """Create a new computed attribute or overwrite an existing one. + + Args: + workspace_id (str): + String containing id of the workspace. + computed_attribute (CatalogComputedAttribute): + ComputedAttribute entity object. + + Returns: + UpsertOutcome: + CREATED if the computed attribute did not exist yet, UPDATED if it did. + + Note: + A computed attribute with no id always takes the create branch; the backend + generates the id. + """ + + def create() -> UpsertOutcome: + # The create endpoint takes the POST document, whose id is optional. + self._entities_api.create_entity_computed_attributes( + workspace_id=workspace_id, + json_api_computed_attribute_post_optional_id_document=CatalogComputedAttributePostDocument( + data=computed_attribute + ).to_api(), + _check_return_type=False, + ) + return UpsertOutcome.CREATED + + if computed_attribute.id is None: + return create() + try: + self.get_computed_attribute(workspace_id=workspace_id, computed_attribute_id=computed_attribute.id) + except NotFoundException: + return create() + self._entities_api.update_entity_computed_attributes( + workspace_id=workspace_id, + object_id=computed_attribute.id, + json_api_computed_attribute_in_document=CatalogComputedAttributeDocument(data=computed_attribute).to_api(), + _check_return_type=False, + ) + return UpsertOutcome.UPDATED + + def get_computed_attribute(self, workspace_id: str, computed_attribute_id: str) -> CatalogComputedAttribute: + """Get computed attribute by its id. + + Args: + workspace_id (str): + String containing id of the workspace. + computed_attribute_id (str): + String containing id of the computed attribute. + + Returns: + CatalogComputedAttribute: + ComputedAttribute entity object. + """ + computed_attribute_dict = self._entities_api.get_entity_computed_attributes( + workspace_id=workspace_id, + object_id=computed_attribute_id, + _check_return_type=False, + ).data + + return CatalogComputedAttribute.from_dict(computed_attribute_dict, camel_case=True) + + def delete_computed_attribute(self, workspace_id: str, computed_attribute_id: str) -> None: + """Delete computed attribute. + + Args: + workspace_id (str): + String containing id of the workspace. + computed_attribute_id (str): + String containing id of the deleted computed attribute. + + Returns: + None + """ + self._entities_api.delete_entity_computed_attributes(workspace_id=workspace_id, object_id=computed_attribute_id) + def get_declarative_filter_views(self, workspace_id: str) -> list[CatalogDeclarativeFilterView]: """Retrieve a list of declarative filter views. diff --git a/packages/gooddata-sdk/src/gooddata_sdk/compute/model/base.py b/packages/gooddata-sdk/src/gooddata_sdk/compute/model/base.py index 1804cb9bf..defc1809b 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/compute/model/base.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/compute/model/base.py @@ -26,8 +26,10 @@ def as_afm_id(self) -> afm_models.AfmObjectIdentifier: ) def as_afm_id_label(self) -> afm_models.AfmObjectIdentifierLabel: + # The type is passed explicitly because an attribute can now be sliced either by a label + # or by a computed attribute. return afm_models.AfmObjectIdentifierLabel( - identifier=afm_models.AfmObjectIdentifierLabelIdentifier(id=self._id) + identifier=afm_models.AfmObjectIdentifierLabelIdentifier(id=self._id, type=self._type) ) def as_afm_id_dataset(self) -> afm_models.AfmObjectIdentifierDataset: diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/computed_attribute_generated_id.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/computed_attribute_generated_id.yaml new file mode 100644 index 000000000..6db7145f3 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/computed_attribute_generated_id.yaml @@ -0,0 +1,190 @@ +# (C) 2026 GoodData Corporation +interactions: + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=0&size=500 + response: + body: + string: + data: [] + links: + next: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=1&size=500 + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=0&size=500 + headers: + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 200 + message: OK + - request: + body: + data: + attributes: + content: + maql: SELECT 1 + title: Generated id + type: computedAttribute + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: POST + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes + response: + body: + string: + data: + attributes: + content: + maql: SELECT 1 + createdAt: 2000-01-01 00:00 + title: Generated id + id: 74deda55-2975-4912-8cb5-f33323d8c9d8 + meta: + origin: + originId: demo + originType: NATIVE + type: computedAttribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/74deda55-2975-4912-8cb5-f33323d8c9d8 + headers: + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=0&size=500 + response: + body: + string: + data: + - attributes: + areRelationsValid: true + content: + maql: SELECT 1 + createdAt: 2000-01-01 00:00 + title: Generated id + id: 74deda55-2975-4912-8cb5-f33323d8c9d8 + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/74deda55-2975-4912-8cb5-f33323d8c9d8 + meta: + origin: + originId: demo + originType: NATIVE + type: computedAttribute + links: + next: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=1&size=500 + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=0&size=500 + headers: + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: DELETE + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/74deda55-2975-4912-8cb5-f33323d8c9d8 + response: + body: + string: '' + headers: + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/computed_attribute_life_cycle.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/computed_attribute_life_cycle.yaml new file mode 100644 index 000000000..2ab7111be --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/computed_attribute_life_cycle.yaml @@ -0,0 +1,2092 @@ +# (C) 2026 GoodData Corporation +interactions: + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=0&size=500 + response: + body: + string: + data: [] + links: + next: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=1&size=500 + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=0&size=500 + headers: + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + response: + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: NORMALIZED_TRACE_ID_000000000000 + type: about:blank + headers: + Content-Type: + - application/problem+json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 404 + message: Not Found + - request: + body: + data: + attributes: + content: + format: '#,##0' + maql: SELECT 1 + tags: + - Test + title: Test computed attribute + id: test_computed_attribute + type: computedAttribute + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: POST + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes + response: + body: + string: + data: + attributes: + content: + format: '#,##0' + maql: SELECT 1 + createdAt: 2000-01-01 00:00 + tags: + - Test + title: Test computed attribute + id: test_computed_attribute + meta: + origin: + originId: demo + originType: NATIVE + type: computedAttribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + headers: + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + response: + body: + string: + data: + attributes: + areRelationsValid: true + content: + format: '#,##0' + maql: SELECT 1 + createdAt: 2000-01-01 00:00 + tags: + - Test + title: Test computed attribute + id: test_computed_attribute + meta: + origin: + originId: demo + originType: NATIVE + type: computedAttribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + headers: + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=0&size=500 + response: + body: + string: + data: + - attributes: + areRelationsValid: true + content: + format: '#,##0' + maql: SELECT 1 + createdAt: 2000-01-01 00:00 + tags: + - Test + title: Test computed attribute + id: test_computed_attribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + meta: + origin: + originId: demo + originType: NATIVE + type: computedAttribute + links: + next: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=1&size=500 + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=0&size=500 + headers: + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: http://localhost:3000/api/v1/layout/workspaces/demo/analyticsModel + response: + body: + string: + analytics: + analyticalDashboardExtensions: [] + analyticalDashboards: + - content: + filterContextRef: + identifier: + id: campaign_name_filter + type: filterContext + layout: + sections: + - header: + description: The first insight shows a breakdown of spend + by category and campaign. The second shows revenue per + $ spend, for each campaign, to demonstrate, how campaigns + are successful. + title: Spend breakdown and Revenue + items: + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: campaign_spend + type: visualizationObject + properties: {} + title: Campaign Spend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: revenue_per_usd_vs_spend_by_campaign + type: visualizationObject + properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout + version: '2' + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + description: '' + id: campaign + permissions: + - assigneeRule: + type: allWorkspaceUsers + name: VIEW + title: Campaign + - content: + filterContextRef: + identifier: + id: campaign_name_filter + type: filterContext + layout: + sections: + - items: + - size: + xl: + gridWidth: 12 + type: IDashboardLayoutItem + widget: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: top_10_products + type: visualizationObject + properties: {} + title: DHO simple + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout + plugins: + - plugin: + identifier: + id: dashboard_plugin_1 + type: dashboardPlugin + version: '2' + version: '2' + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: dashboard_plugin + title: Dashboard plugin + - content: + filterContextRef: + identifier: + id: region_filter + type: filterContext + layout: + sections: + - items: + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: top_10_products + type: visualizationObject + properties: {} + title: Top 10 Products + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: revenue_trend + type: visualizationObject + properties: {} + title: Revenue Trend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: customers_trend + type: visualizationObject + properties: {} + title: Customers Trend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_categories_pie_chart + type: visualizationObject + properties: {} + title: Product Categories Pie Chart + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_breakdown + type: visualizationObject + properties: {} + title: Product Breakdown + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_saleability + type: visualizationObject + properties: {} + title: Product Saleability + type: insight + - size: + xl: + gridWidth: 12 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: percent_revenue_per_product_by_customer_and_category + type: visualizationObject + properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout + version: '2' + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + description: '' + id: product_and_category + title: Product & Category + attributeHierarchies: [] + computedAttributes: + - content: + format: '#,##0' + maql: SELECT 1 + metricType: UNSPECIFIED + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: test_computed_attribute + tags: + - Test + title: Test computed attribute + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + exportDefinitions: [] + filterContexts: + - content: + filters: + - dateFilter: + from: '0' + granularity: GDC.time.month + to: '0' + type: relative + - attributeFilter: + attributeElements: + uris: [] + displayForm: + identifier: + id: campaign_name + type: label + filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true + version: '2' + description: '' + id: campaign_name_filter + title: filterContext + - content: + filters: + - attributeFilter: + attributeElements: + uris: [] + displayForm: + identifier: + id: region + type: label + filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true + version: '2' + description: '' + id: region_filter + title: filterContext + memoryItems: [] + metrics: + - content: + format: '#,##0' + maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: amount_of_active_customers + title: '# of Active Customers' + - content: + format: '#,##0' + maql: SELECT COUNT({attribute/order_id}) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: amount_of_orders + title: '# of Orders' + - content: + format: '#,##0' + maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT + {metric/revenue} BY {attribute/customer_id}) > 10000 ' + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: amount_of_top_customers + title: '# of Top Customers' + - content: + format: '#,##0.00' + maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} + IN ("Returned", "Canceled")) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: + format: $#,##0 + maql: SELECT SUM({fact/spend}) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: campaign_spend + title: Campaign Spend + - content: + format: $#,##0 + maql: SELECT SUM({fact/price}*{fact/quantity}) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: order_amount + title: Order Amount + - content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / {metric/total_revenue} + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: percent_revenue + title: '% Revenue' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ + \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ + \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ + \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ + \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, + ALL OTHER) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL + {attribute/product_id}) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: + format: $#,##0 + maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} + IN ("Returned", "Canceled")) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + description: '' + id: revenue + title: Revenue + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Clothing") + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue-clothing + title: Revenue (Clothing) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ( "Electronics") + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue-electronic + title: Revenue (Electronic) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Home") + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue-home + title: Revenue (Home) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Outdoor") + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue-outdoor + title: Revenue (Outdoor) + - content: + format: $#,##0.0 + maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue_per_customer + title: Revenue per Customer + - content: + format: $#,##0.0 + maql: SELECT {metric/revenue} / {metric/campaign_spend} + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue_top_10 + title: Revenue / Top 10 + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: + format: $#,##0 + maql: SELECT {metric/revenue} BY ALL OTHER + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: total_revenue + title: Total Revenue + - content: + format: $#,##0 + maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: total_revenue-no_filters + title: Total Revenue (No Filters) + parameters: [] + visualizationObjects: + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: campaign_spend + type: metric + localIdentifier: d319bcb2d8c04442a684e3b3cd063381 + title: Campaign Spend + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: campaign_channels.category + type: label + localIdentifier: 291c085e7df8420db84117ca49f59c49 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: campaign_name + type: label + localIdentifier: d9dd143d647d4d148405a60ec2cf59bc + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: type + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_channels.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_name + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:treemap + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: campaign_spend + title: Campaign Spend + - content: + buckets: + - items: + - measure: + alias: Active Customers + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: amount_of_active_customers + type: metric + localIdentifier: 2ba0b87b59ca41a4b1530e81a5c1d081 + title: '# of Active Customers' + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_per_customer + type: metric + localIdentifier: ec0606894b9f4897b7beaf1550608928 + title: Revenue per Customer + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 0de7d7f08af7480aa636857a26be72b6 + localIdentifier: view + filters: + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -12 + granularity: GDC.time.month + to: -1 + properties: + controls: + colorMapping: + - color: + type: guid + value: '20' + id: 2ba0b87b59ca41a4b1530e81a5c1d081 + - color: + type: guid + value: '4' + id: ec0606894b9f4897b7beaf1550608928 + dualAxis: true + legend: + position: bottom + primaryChartType: column + secondaryChartType: line + secondary_yaxis: + measures: + - ec0606894b9f4897b7beaf1550608928 + xaxis: + name: + visible: false + rotation: auto + version: '2' + visualizationUrl: local:combo2 + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: customers_trend + title: Customers Trend + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: percent_revenue_per_product + type: metric + localIdentifier: 08d8346c1ce7438994b251991c0fbf65 + title: '% Revenue per Product' + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: b2350c06688b4da9b3833ebcce65527f + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: customer_name + type: label + localIdentifier: 7a4045fd00ac44579f52406df679435f + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 6a003ffd14994237ba64c4a02c488429 + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 75ea396d0c8b48098e31dccf8b5801d3 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: {} + sorts: + - attributeSortItem: + attributeIdentifier: 7a4045fd00ac44579f52406df679435f + direction: asc + version: '2' + visualizationUrl: local:table + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: amount_of_active_customers + type: metric + localIdentifier: 1a14cdc1293c46e89a2e25d3e741d235 + title: '# of Active Customers' + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: c1feca1864244ec2ace7a9b9d7fda231 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: region + type: label + localIdentifier: 530cddbd7ca04d039e73462d81ed44d5 + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: region + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + properties: + controls: + legend: + position: bottom + stackMeasuresToPercent: true + version: '2' + visualizationUrl: local:area + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 590d332ef686468b8878ae41b23341c6 + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: b166c71091864312a14c7ae8ff886ffe + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: e920a50e0bbb49788df0aac53634c1cd + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:treemap + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: product_breakdown + title: Product Breakdown + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + computeRatio: true + filters: [] + item: + identifier: + id: revenue + type: metric + format: '#,##0.00%' + localIdentifier: 162b857af49d45769bc12604a5c192b9 + title: '% Revenue' + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: fe513cef1c6244a5ac21c5f49c56b108 + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + dataLabels: + visible: auto + legend: + position: bottom + version: '2' + visualizationUrl: local:donut + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: + buckets: + - items: + - measure: + alias: Previous Period + definition: + popMeasureDefinition: + measureIdentifier: c82e025fa2db4afea9a600a424591dbe + popAttribute: + identifier: + id: date.year + type: attribute + localIdentifier: c82e025fa2db4afea9a600a424591dbe_pop + - measure: + alias: This Period + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: c82e025fa2db4afea9a600a424591dbe + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: c804ef5ba7944a5a9f360c86a9e95e9a + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + stackMeasures: false + xaxis: + name: + visible: false + yaxis: + name: + visible: false + version: '2' + visualizationUrl: local:column + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: + buckets: + - items: + - measure: + alias: Number of Orders + definition: + measureDefinition: + filters: [] + item: + identifier: + id: amount_of_orders + type: metric + localIdentifier: aeb5d51a162d4b59aba3bd6ddebcc780 + title: '# of Orders' + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 94b3edd3a73c4a48a4d13bbe9442cc98 + title: Revenue + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: d2a991bdd123448eb2be73d79f1180c4 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: + controls: + dataLabels: + visible: auto + grid: + enabled: true + version: '2' + visualizationUrl: local:scatter + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: product_saleability + title: Product Saleability + - content: + buckets: + - items: + - measure: + alias: Items Sold + definition: + measureDefinition: + aggregation: sum + filters: [] + item: + identifier: + id: quantity + type: fact + format: '#,##0.00' + localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 + title: Sum of Quantity + - measure: + definition: + measureDefinition: + aggregation: avg + filters: [] + item: + identifier: + id: price + type: fact + format: '#,##0.00' + localIdentifier: aa6391acccf1452f8011201aef9af492 + title: Avg Price + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: percent_revenue_in_category + type: metric + localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 + title: '% Revenue in Category' + - measure: + alias: Total Revenue + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 06bc6b3b9949466494e4f594c11f1bff + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: {} + sorts: + - attributeSortItem: + attributeIdentifier: 06bc6b3b9949466494e4f594c11f1bff + direction: asc + version: '2' + visualizationUrl: local:table + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 7df6c34387744d69b23ec92e1a5cf543 + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 4bb4fc1986c546de9ad976e6ec23fed4 + localIdentifier: trend + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 34bddcb1cd024902a82396216b0fa9d8 + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + granularity: GDC.time.year + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:line + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 4ae3401bdbba4938afe983df4ba04e1c + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 1c8ba72dbfc84ddd913bf81dc355c427 + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: {} + version: '2' + visualizationUrl: local:bar + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue_by_product + title: Revenue by Product + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: campaign_spend + type: metric + localIdentifier: 13a50d811e474ac6808d8da7f4673b35 + title: Campaign Spend + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_per_dollar_spent + type: metric + localIdentifier: a0f15e82e6334280a44dbedc7d086e7c + title: Revenue per Dollar Spent + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: campaign_name + type: label + localIdentifier: 1d9fa968bafb423eb29c938dfb1207ff + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_name + type: label + notIn: + values: [] + properties: + controls: + xaxis: + min: '0' + yaxis: + min: '0' + version: '2' + visualizationUrl: local:scatter + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 60c854969a9c4c278ab596d99c222e92 + title: Revenue + localIdentifier: measures + - items: + - measure: + alias: Number of Orders + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: amount_of_orders + type: metric + localIdentifier: c2fa7ef48cc54af99f8c280eb451e051 + title: '# of Orders' + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 413ac374b65648fa96826ca01d47bdda + localIdentifier: view + filters: + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -3 + granularity: GDC.time.quarter + to: 0 + properties: + controls: + dualAxis: true + legend: + position: bottom + primaryChartType: column + secondaryChartType: line + secondary_yaxis: + measures: + - c2fa7ef48cc54af99f8c280eb451e051 + xaxis: + name: + visible: false + rotation: auto + version: '2' + visualizationUrl: local:combo2 + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: revenue_trend + title: Revenue Trend + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_top_10 + type: metric + localIdentifier: 3f127ccfe57a40399e23f9ae2a4ad810 + title: Revenue / Top 10 + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: customer_name + type: label + localIdentifier: f4e39e24f11e4827a191c30d65c89d2c + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: state + type: label + localIdentifier: bbccd430176d428caed54c99afc9589e + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: state + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:bar + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: top_10_customers + title: Top 10 Customers + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_top_10 + type: metric + localIdentifier: 77dc71bbac92412bac5f94284a5919df + title: Revenue / Top 10 + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 781952e728204dcf923142910cc22ae2 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: fe513cef1c6244a5ac21c5f49c56b108 + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:bar + createdAt: 2000-01-01 00:00 + createdBy: + id: admin + type: user + id: top_10_products + title: Top 10 Products + headers: + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + response: + body: + string: + data: + attributes: + areRelationsValid: true + content: + format: '#,##0' + maql: SELECT 1 + createdAt: 2000-01-01 00:00 + tags: + - Test + title: Test computed attribute + id: test_computed_attribute + meta: + origin: + originId: demo + originType: NATIVE + type: computedAttribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + headers: + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 200 + message: OK + - request: + body: + data: + attributes: + content: + format: '#,##0' + maql: SELECT 1 + tags: + - Test + title: Renamed + id: test_computed_attribute + type: computedAttribute + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: PUT + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + response: + body: + string: + data: + attributes: + content: + format: '#,##0' + maql: SELECT 1 + createdAt: 2000-01-01 00:00 + modifiedAt: 2000-01-01 00:00 + tags: + - Test + title: Renamed + id: test_computed_attribute + meta: + origin: + originId: demo + originType: NATIVE + type: computedAttribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + headers: + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + response: + body: + string: + data: + attributes: + areRelationsValid: true + content: + format: '#,##0' + maql: SELECT 1 + createdAt: 2000-01-01 00:00 + modifiedAt: 2000-01-01 00:00 + tags: + - Test + title: Renamed + id: test_computed_attribute + meta: + origin: + originId: demo + originType: NATIVE + type: computedAttribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + headers: + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: DELETE + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + response: + body: + string: '' + headers: + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 204 + message: No Content + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=0&size=500 + response: + body: + string: + data: [] + links: + next: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=1&size=500 + self: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes?page=0&size=500 + headers: + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: DELETE + uri: http://localhost:3000/api/v1/entities/workspaces/demo/computedAttributes/test_computed_attribute + response: + body: + string: '' + headers: + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py b/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py index c82163af0..5daf4e03d 100644 --- a/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py +++ b/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py @@ -9,6 +9,7 @@ from gooddata_sdk import ( BasicCredentials, CatalogAutomationSchedule, + CatalogComputedAttribute, CatalogDataSourcePostgres, CatalogDeclarativeAutomation, CatalogDeclarativeFilterView, @@ -862,6 +863,97 @@ def test_update_workspace_setting(test_config): safe_delete(sdk.catalog_workspace.delete_workspace_setting, test_config["workspace"], setting_id) +def _computed_attribute(title: str = "Test computed attribute") -> CatalogComputedAttribute: + return CatalogComputedAttribute.init( + computed_attribute_id="test_computed_attribute", + maql="SELECT 1", + title=title, + format="#,##0", + tags=["Test"], + ) + + +@gd_vcr.use_cassette(str(_fixtures_dir / "computed_attribute_life_cycle.yaml")) +def test_computed_attribute_life_cycle(test_config): + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) + workspace_id = test_config["workspace"] + computed_attribute_id = "test_computed_attribute" + + # Anything the workspace already has is none of this test's business - it must not + # assume an empty workspace, nor clean up computed attributes it did not create. + existing_ids = {ca.id for ca in sdk.catalog_workspace.list_computed_attributes(workspace_id)} + assert computed_attribute_id not in existing_ids + + try: + outcome = sdk.catalog_workspace.create_or_update_computed_attribute(workspace_id, _computed_attribute()) + assert outcome == UpsertOutcome.CREATED + + computed_attribute_o = sdk.catalog_workspace.get_computed_attribute(workspace_id, computed_attribute_id) + assert computed_attribute_o.id == computed_attribute_id + assert computed_attribute_o.attributes.title == "Test computed attribute" + assert computed_attribute_o.attributes.content.maql == "SELECT 1" + assert computed_attribute_o.attributes.content.format == "#,##0" + assert computed_attribute_o.attributes.tags == ["Test"] + + listed_ids = {ca.id for ca in sdk.catalog_workspace.list_computed_attributes(workspace_id)} + assert listed_ids - existing_ids == {computed_attribute_id} + + # The same computed attribute must also show up in the declarative layout - + # analytics-as-code parity is the point of CA support (CQ-2799 / CQ-2800). + layout = sdk.catalog_workspace_content.get_declarative_analytics_model(workspace_id) + declarative = [ca for ca in layout.analytics.computed_attributes if ca.id == computed_attribute_id] + assert len(declarative) == 1 + assert declarative[0].title == "Test computed attribute" + assert declarative[0].content.maql == "SELECT 1" + assert declarative[0].content.format == "#,##0" + + # The update goes through a different endpoint (PUT) and a different request + # body (the `In` document) than the create (POST + `PostOptionalId` document). + outcome = sdk.catalog_workspace.create_or_update_computed_attribute( + workspace_id, _computed_attribute(title="Renamed") + ) + assert outcome == UpsertOutcome.UPDATED + computed_attribute_o = sdk.catalog_workspace.get_computed_attribute(workspace_id, computed_attribute_id) + assert computed_attribute_o.attributes.title == "Renamed" + + sdk.catalog_workspace.delete_computed_attribute(workspace_id, computed_attribute_id) + assert {ca.id for ca in sdk.catalog_workspace.list_computed_attributes(workspace_id)} == existing_ids + finally: + safe_delete(sdk.catalog_workspace.delete_computed_attribute, workspace_id, computed_attribute_id) + + +@gd_vcr.use_cassette(str(_fixtures_dir / "computed_attribute_generated_id.yaml")) +def test_create_computed_attribute_with_generated_id(test_config): + """A computed attribute created without an id gets one from the backend. + + Unlike filter views, user data filters and workspace settings, the computed + attribute POST schema really does accept a missing id -- see + ``TestIdLessCreateIsUnreachable`` in test_upsert_outcome.py for why the others + cannot do this. + """ + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) + workspace_id = test_config["workspace"] + computed_attribute = CatalogComputedAttribute.init(maql="SELECT 1", title="Generated id") + + existing_ids = {ca.id for ca in sdk.catalog_workspace.list_computed_attributes(workspace_id)} + created_ids: set[str] = set() + try: + outcome = sdk.catalog_workspace.create_or_update_computed_attribute(workspace_id, computed_attribute) + assert outcome == UpsertOutcome.CREATED + + created_ids = {ca.id for ca in sdk.catalog_workspace.list_computed_attributes(workspace_id)} - existing_ids + assert len(created_ids) == 1 + # The backend generated the id; the SDK must not have sent a literal "None". + generated_id = created_ids.pop() + created_ids = {generated_id} + assert generated_id + assert generated_id != "None" + finally: + # Only ever delete what this test created. + for created_id in created_ids: + safe_delete(sdk.catalog_workspace.delete_computed_attribute, workspace_id, created_id) + + @gd_vcr.use_cassette(str(_fixtures_dir / "get_metadata_localization.yaml")) def test_get_metadata_localization(test_config): sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) diff --git a/packages/gooddata-sdk/tests/catalog/test_upsert_outcome.py b/packages/gooddata-sdk/tests/catalog/test_upsert_outcome.py index b2d81434b..d74667404 100644 --- a/packages/gooddata-sdk/tests/catalog/test_upsert_outcome.py +++ b/packages/gooddata-sdk/tests/catalog/test_upsert_outcome.py @@ -13,6 +13,7 @@ ) from gooddata_sdk.catalog.organization.entity_model.export_template import CatalogExportTemplateAttributes from gooddata_sdk.catalog.organization.service import CatalogOrganizationService +from gooddata_sdk.catalog.workspace.entity_model.content_objects.computed_attribute import CatalogComputedAttribute from gooddata_sdk.catalog.workspace.entity_model.filter_view import CatalogFilterView from gooddata_sdk.catalog.workspace.entity_model.user_data_filter import CatalogUserDataFilter from gooddata_sdk.catalog.workspace.service import CatalogWorkspaceService @@ -20,7 +21,10 @@ # The create/update branch is decided by whether the preceding entity GET raises # NotFoundException, so these stub that getter instead of replaying a cassette. # They cover what no cassette covers upstream: filter views, export templates, -# and the update branch of user data filters. +# and the update branch of user data filters. Computed attributes are covered by +# cassettes too (test_catalog_workspace.py); the stubs here additionally pin which +# generated endpoint each branch calls, because create and update take different +# request bodies. def _service(cls, getter: str, *, found: bool): @@ -47,6 +51,12 @@ def _user_data_filter(user_data_filter_id: str | None = "udf") -> CatalogUserDat return evolve(udf, id=user_data_filter_id) +def _computed_attribute(computed_attribute_id: str | None = "ca") -> CatalogComputedAttribute: + return CatalogComputedAttribute.init( + computed_attribute_id=computed_attribute_id, maql="SELECT 1", title="Test computed attribute" + ) + + def _export_template() -> CatalogExportTemplate: return CatalogExportTemplate( id="test_template", @@ -93,6 +103,48 @@ def test_updated_when_present(self): service._entities_api.update_entity_workspace_settings.assert_called_once() +class TestComputedAttributeOutcome: + def test_created_when_absent(self): + service = _service(CatalogWorkspaceService, "get_computed_attribute", found=False) + assert service.create_or_update_computed_attribute("demo", _computed_attribute()) == UpsertOutcome.CREATED + service._entities_api.create_entity_computed_attributes.assert_called_once() + service._entities_api.update_entity_computed_attributes.assert_not_called() + + def test_updated_when_present(self): + service = _service(CatalogWorkspaceService, "get_computed_attribute", found=True) + assert service.create_or_update_computed_attribute("demo", _computed_attribute()) == UpsertOutcome.UPDATED + service._entities_api.update_entity_computed_attributes.assert_called_once() + service._entities_api.create_entity_computed_attributes.assert_not_called() + + def test_create_bodies_are_not_interchangeable(self): + """Create takes the `PostOptionalId` document, update takes the `In` document. + + Regression test: the create branch was first wired to the `In` document, copied + from the filter-view template above, which raised a TypeError from the generated + client. Asserting on the keyword pins each endpoint to its own body. + """ + service = _service(CatalogWorkspaceService, "get_computed_attribute", found=False) + service.create_or_update_computed_attribute("demo", _computed_attribute()) + create_kwargs = service._entities_api.create_entity_computed_attributes.call_args.kwargs + assert "json_api_computed_attribute_post_optional_id_document" in create_kwargs + + service = _service(CatalogWorkspaceService, "get_computed_attribute", found=True) + service.create_or_update_computed_attribute("demo", _computed_attribute()) + update_kwargs = service._entities_api.update_entity_computed_attributes.call_args.kwargs + assert "json_api_computed_attribute_in_document" in update_kwargs + + def test_id_less_create_skips_the_lookup(self): + """With no id there is nothing to look up, so it goes straight to create. + + Computed attributes are the one entity where this genuinely works -- see + TestIdLessCreateIsUnreachable for why the others cannot. + """ + service = _service(CatalogWorkspaceService, "get_computed_attribute", found=True) + assert service.create_or_update_computed_attribute("demo", _computed_attribute(None)) == UpsertOutcome.CREATED + service.get_computed_attribute.assert_not_called() + service._entities_api.create_entity_computed_attributes.assert_called_once() + + class TestExportTemplateOutcome: def test_created_when_absent(self): service = _service(CatalogOrganizationService, "get_export_template", found=False) @@ -115,6 +167,10 @@ class TestIdLessCreateIsUnreachable: "accept None". These are strict xfails so that fixing the generated client (or the entity models) trips them and this file gets revisited, rather than the outcome contract silently claiming to cover a dead path. + + CatalogComputedAttribute shows the way out: its `to_post_api()` omits the id + key entirely instead of passing None, so its id-less create really does work + (TestComputedAttributeOutcome.test_id_less_create_skips_the_lookup). """ @pytest.mark.xfail(raises=ApiTypeError, strict=True, reason="generated client rejects a None id") diff --git a/packages/gooddata-sdk/tests/catalog/unit_tests/test_declarative_computed_attributes.py b/packages/gooddata-sdk/tests/catalog/unit_tests/test_declarative_computed_attributes.py new file mode 100644 index 000000000..e225e44b1 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/unit_tests/test_declarative_computed_attributes.py @@ -0,0 +1,115 @@ +# (C) 2026 GoodData Corporation +"""Unit test: analytics-layer ``computed_attributes`` survive the declarative round-trip. + +The declarative round-trip is the whole point of CA support in the SDK - it is what +gives analytics-as-code parity with the backend layout API (CQ-2799 / CQ-2800). A +computed attribute that goes into ``analytics_model/computed_attributes/`` must come +back out unchanged, including the nested ``content`` ({maql, format, metricType}). +""" + +from __future__ import annotations + +from pathlib import Path + +import pytest +from gooddata_sdk import ( + CatalogComputedAttribute, + CatalogComputedAttributeDocument, + CatalogComputedAttributePostDocument, + CatalogDeclarativeAnalytics, +) +from gooddata_sdk.catalog.workspace.declarative_model.workspace.analytics_model.analytics_model import ( + CatalogDeclarativeAnalyticsLayer, +) +from gooddata_sdk.compute.model.attribute import Attribute +from gooddata_sdk.compute.model.base import ObjId + +_COMPUTED_ATTRIBUTE = { + "id": "sales-band", + "title": "Sales Band", + "description": "Bucketed sales.", + "content": {"maql": "SELECT 1", "format": "#,##0", "metricType": "UNSPECIFIED"}, + "dataType": "STRING", + "tags": ["Sales"], +} +_LAYOUT = {"analytics": {"computedAttributes": [_COMPUTED_ATTRIBUTE]}} + + +def test_declarative_computed_attributes_survive_round_trip() -> None: + analytics = CatalogDeclarativeAnalytics.from_dict(_LAYOUT) + + computed_attributes = analytics.analytics.computed_attributes + assert len(computed_attributes) == 1 + assert computed_attributes[0].id == "sales-band" + assert computed_attributes[0].title == "Sales Band" + assert computed_attributes[0].data_type == "STRING" + # The nested content is typed, not a bare dict. + assert computed_attributes[0].content.maql == "SELECT 1" + assert computed_attributes[0].content.format == "#,##0" + assert computed_attributes[0].content.metric_type == "UNSPECIFIED" + + round_tripped = analytics.to_api().to_dict(camel_case=True) + assert round_tripped["analytics"]["computedAttributes"] == [_COMPUTED_ATTRIBUTE] + + +def test_declarative_computed_attributes_survive_disk_round_trip(tmp_path: Path) -> None: + layer = CatalogDeclarativeAnalyticsLayer.from_dict({"computedAttributes": [_COMPUTED_ATTRIBUTE]}) + + layer.store_to_disk(tmp_path) + assert (tmp_path / "analytics_model" / "computed_attributes" / "sales-band.yaml").exists() + + reloaded = CatalogDeclarativeAnalyticsLayer.load_from_disk(tmp_path) + assert reloaded.computed_attributes == layer.computed_attributes + assert reloaded.to_dict(camel_case=True)["computedAttributes"] == [_COMPUTED_ATTRIBUTE] + + +def _computed_attribute(**kwargs: object) -> CatalogComputedAttribute: + return CatalogComputedAttribute.init(maql="SELECT 1", title="Sales Band", format="#,##0", **kwargs) # type: ignore[arg-type] + + +_EXPECTED_ATTRIBUTES = {"title": "Sales Band", "content": {"maql": "SELECT 1", "format": "#,##0"}} + + +def test_computed_attribute_entity_serializes_to_json_api_document() -> None: + """The PUT (update) endpoint takes the `In` document, which requires the id.""" + document = CatalogComputedAttributeDocument(data=_computed_attribute(computed_attribute_id="sales-band")) + + assert document.to_api().to_dict(camel_case=True) == { + "data": {"id": "sales-band", "type": "computedAttribute", "attributes": _EXPECTED_ATTRIBUTES} + } + + +def test_computed_attribute_post_document_carries_the_optional_id_body() -> None: + """The POST (create) endpoint takes its own document, whose id is optional. + + Regression test: the create call was originally wired to the `In` document, copied + from the filter-view template. Computed attributes have a separate POST schema, so + that raised a TypeError from the generated client before it ever reached the backend. + """ + with_id = CatalogComputedAttributePostDocument(data=_computed_attribute(computed_attribute_id="sales-band")) + assert with_id.to_api().to_dict(camel_case=True) == { + "data": {"id": "sales-band", "type": "computedAttribute", "attributes": _EXPECTED_ATTRIBUTES} + } + + # No id - the backend generates one, so the key must be absent rather than null. + without_id = CatalogComputedAttributePostDocument(data=_computed_attribute()) + assert without_id.to_api().to_dict(camel_case=True) == { + "data": {"type": "computedAttribute", "attributes": _EXPECTED_ATTRIBUTES} + } + + +def test_computed_attribute_without_id_cannot_be_updated() -> None: + with pytest.raises(ValueError, match="id is required for an update"): + CatalogComputedAttributeDocument(data=_computed_attribute()).to_api() + + +def test_computed_attribute_can_slice_an_execution() -> None: + """A computed attribute is referenced through the label slot of an AFM attribute.""" + computed = Attribute(local_id="ca", label=ObjId("sales-band", "computedAttribute")) + assert computed.as_api_model().to_dict(camel_case=True)["label"] == { + "identifier": {"id": "sales-band", "type": "computedAttribute"} + } + + # Plain labels keep working - the type is no longer defaulted by the generated client. + plain = Attribute(local_id="l", label="region") + assert plain.as_api_model().to_dict(camel_case=True)["label"] == {"identifier": {"id": "region", "type": "label"}} diff --git a/packages/tests-support/src/tests_support/vcrpy_utils.py b/packages/tests-support/src/tests_support/vcrpy_utils.py index 9fba5b501..72ce1798d 100644 --- a/packages/tests-support/src/tests_support/vcrpy_utils.py +++ b/packages/tests-support/src/tests_support/vcrpy_utils.py @@ -61,14 +61,18 @@ _normalization_configured: bool = False # --- Timestamp normalization --- -_CREATED_AT_RE = re.compile( - r'(?<=createdAt": ")\d{4}-\d{2}-\d{2} \d{2}:\d{2}' # JSON (stdlib): "createdAt": "..." - r"|" - r'(?<=createdAt":")\d{4}-\d{2}-\d{2} \d{2}:\d{2}' # JSON (orjson): "createdAt":"..." - r"|" - r"(?<=createdAt: )\d{4}-\d{2}-\d{2} \d{2}:\d{2}" # YAML: createdAt: ... +# Entity timestamps change on every recording, so canonicalize them: otherwise a +# re-recorded cassette differs from its predecessor by timestamps alone. Every key +# needs three variants - stdlib JSON ("key": "val"), orjson ("key":"val") and YAML. +_TIMESTAMP_KEYS = ("createdAt", "modifiedAt") +_TIMESTAMP_VALUE = r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}" +_TIMESTAMP_RE = re.compile( + "|".join( + rf'(?<={key}": "){_TIMESTAMP_VALUE}|(?<={key}":"){_TIMESTAMP_VALUE}|(?<={key}: ){_TIMESTAMP_VALUE}' + for key in _TIMESTAMP_KEYS + ) ) -_CANONICAL_CREATED_AT = "2000-01-01 00:00" +_CANONICAL_TIMESTAMP = "2000-01-01 00:00" # --- Transient server value normalization --- # All patterns need both stdlib JSON ("key": "val") and orjson ("key":"val") variants. @@ -280,7 +284,7 @@ def _normalize_hashes_in_text(text: str) -> str: """Replace transient server values with deterministic placeholders.""" text = _EXEC_HASH_BODY_RE.sub(_exec_hash_replacer, text) text = _EXPORT_HASH_BODY_RE.sub(_export_hash_replacer, text) - text = _CREATED_AT_RE.sub(_CANONICAL_CREATED_AT, text) + text = _TIMESTAMP_RE.sub(_CANONICAL_TIMESTAMP, text) text = _TRACE_ID_RE.sub(_CANONICAL_TRACE_ID, text) text = _AUTH_ID_RE.sub(_CANONICAL_AUTH_ID, text) text = _BEARER_TOKEN_RE.sub(_CANONICAL_BEARER_TOKEN, text) diff --git a/schemas/gooddata-afm-client.json b/schemas/gooddata-afm-client.json index 5281f6a6e..68c858270 100644 --- a/schemas/gooddata-afm-client.json +++ b/schemas/gooddata-afm-client.json @@ -354,6 +354,7 @@ "enum": [ "analyticalDashboard", "attribute", + "computedAttribute", "dashboardPlugin", "dataset", "fact", @@ -423,7 +424,8 @@ "attribute", "label", "fact", - "metric" + "metric", + "computedAttribute" ], "type": "string" } @@ -480,7 +482,8 @@ }, "type": { "enum": [ - "label" + "label", + "computedAttribute" ], "type": "string" } @@ -574,7 +577,8 @@ "enum": [ "facts", "attributes", - "measures" + "measures", + "computedAttributes" ], "example": "facts", "type": "string" @@ -7285,8 +7289,8 @@ "type": "string" }, "type": { - "description": "Specifies entity type which could be label, attribute, fact, or metric.", - "pattern": "^(label)|(attribute)|(fact)|(metric)$", + "description": "Specifies entity type which could be label, attribute, computedAttribute, fact, or metric.", + "pattern": "^(label|attribute|computedAttribute|fact|metric)$", "type": "string" } }, diff --git a/schemas/gooddata-api-client.json b/schemas/gooddata-api-client.json index 3a1b8b74f..f8007a537 100644 --- a/schemas/gooddata-api-client.json +++ b/schemas/gooddata-api-client.json @@ -503,6 +503,7 @@ "enum": [ "analyticalDashboard", "attribute", + "computedAttribute", "dashboardPlugin", "dataset", "fact", @@ -572,7 +573,8 @@ "attribute", "label", "fact", - "metric" + "metric", + "computedAttribute" ], "type": "string" } @@ -629,7 +631,8 @@ }, "type": { "enum": [ - "label" + "label", + "computedAttribute" ], "type": "string" } @@ -723,7 +726,8 @@ "enum": [ "facts", "attributes", - "measures" + "measures", + "computedAttributes" ], "example": "facts", "type": "string" @@ -5824,6 +5828,13 @@ }, "type": "array" }, + "computedAttributes": { + "description": "A list of computed attributes available in the model.", + "items": { + "$ref": "#/components/schemas/DeclarativeComputedAttribute" + }, + "type": "array" + }, "dashboardPlugins": { "description": "A list of dashboard plugins available in the model.", "items": { @@ -6320,6 +6331,171 @@ ], "type": "object" }, + "DeclarativeComputedAttribute": { + "properties": { + "certification": { + "description": "Certification status of the entity.", + "enum": [ + "CERTIFIED" + ], + "type": "string" + }, + "certificationMessage": { + "description": "Optional message associated with the certification.", + "nullable": true, + "type": "string" + }, + "certifiedAt": { + "description": "Time when the certification was set.", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", + "type": "string" + }, + "certifiedBy": { + "$ref": "#/components/schemas/DeclarativeUserIdentifier" + }, + "content": { + "$ref": "#/components/schemas/DeclarativeComputedAttributeContent" + }, + "createdAt": { + "description": "Time of the entity creation.", + "example": "2023-07-20 12:30", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", + "type": "string" + }, + "createdBy": { + "$ref": "#/components/schemas/DeclarativeUserIdentifier" + }, + "dataType": { + "description": "Computed attribute data type", + "enum": [ + "INT", + "STRING", + "DATE", + "NUMERIC", + "TIMESTAMP", + "TIMESTAMP_TZ", + "BOOLEAN", + "HLL" + ], + "example": "STRING", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Computed attribute description.", + "example": "Sales for all the data available.", + "maxLength": 10000, + "type": "string" + }, + "id": { + "description": "Computed attribute ID.", + "example": "total-sales", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "isHidden": { + "description": "If true, this computed attribute is hidden from AI search results.", + "example": false, + "type": "boolean" + }, + "isNullable": { + "description": "Flag indicating whether the associated source column allows null values.", + "example": false, + "type": "boolean" + }, + "locale": { + "description": "Default locale for primary computed label.", + "example": "en-US", + "type": "string" + }, + "modifiedAt": { + "description": "Time of the last entity modification.", + "example": "2023-07-20 12:30", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", + "type": "string" + }, + "modifiedBy": { + "$ref": "#/components/schemas/DeclarativeUserIdentifier" + }, + "nullValue": { + "description": "Value used in coalesce during joins instead of null.", + "example": "empty_value", + "type": "string" + }, + "tags": { + "description": "A list of tags.", + "example": [ + "Revenues" + ], + "items": { + "description": "A list of tags.", + "example": "[\"Revenues\"]", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Computed attribute title.", + "example": "Total sales", + "maxLength": 255, + "type": "string" + }, + "valueType": { + "description": "Specific type of the computed attribute value", + "enum": [ + "TEXT", + "HYPERLINK", + "GEO", + "GEO_LONGITUDE", + "GEO_LATITUDE", + "GEO_AREA", + "GEO_ICON", + "IMAGE", + "HYPERLOGLOG" + ], + "type": "string" + } + }, + "required": [ + "content", + "id", + "title" + ], + "type": "object" + }, + "DeclarativeComputedAttributeContent": { + "description": "A definition of the computed attribute content.", + "properties": { + "format": { + "description": "Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.", + "example": "%0.2f", + "maxLength": 2048, + "nullable": true, + "type": "string" + }, + "maql": { + "example": "SELECT 1", + "maxLength": 10000, + "type": "string" + }, + "metricType": { + "description": "Categorizes metric semantics (e.g., currency).", + "enum": [ + "UNSPECIFIED", + "CURRENCY" + ], + "type": "string" + } + }, + "required": [ + "maql" + ], + "type": "object" + }, "DeclarativeCspDirective": { "properties": { "directive": { @@ -9537,6 +9713,7 @@ "fact", "label", "metric", + "computedAttribute", "userDataFilter", "parameter", "automation", @@ -10039,6 +10216,7 @@ "fact", "label", "metric", + "computedAttribute", "userDataFilter", "parameter", "automation", @@ -11595,6 +11773,7 @@ "aggregatedFact", "label", "metric", + "computedAttribute", "userDataFilter", "parameter", "exportDefinition", @@ -15670,21 +15849,97 @@ ], "type": "object" }, - "JsonApiCookieSecurityConfigurationIn": { - "description": "JSON:API representation of cookieSecurityConfiguration entity.", + "JsonApiComputedAttributeIn": { + "description": "JSON:API representation of computedAttribute entity.", "properties": { "attributes": { "properties": { - "lastRotation": { - "format": "date-time", + "areRelationsValid": { + "type": "boolean" + }, + "content": { + "properties": { + "format": { + "description": "Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.", + "maxLength": 2048, + "nullable": true, + "type": "string" + }, + "maql": { + "maxLength": 10000, + "type": "string" + }, + "metricType": { + "description": "Categorizes metric semantics (e.g., currency).", + "enum": [ + "UNSPECIFIED", + "CURRENCY" + ], + "type": "string" + } + }, + "required": [ + "maql" + ], + "type": "object" + }, + "dataType": { + "enum": [ + "INT", + "STRING", + "DATE", + "NUMERIC", + "TIMESTAMP", + "TIMESTAMP_TZ", + "BOOLEAN", + "HLL" + ], "type": "string" }, - "rotationInterval": { - "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", - "example": "P30D", + "description": { + "maxLength": 10000, + "type": "string" + }, + "isHidden": { + "type": "boolean" + }, + "isNullable": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "nullValue": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "maxLength": 255, + "type": "string" + }, + "valueType": { + "enum": [ + "TEXT", + "HYPERLINK", + "GEO", + "GEO_LONGITUDE", + "GEO_LATITUDE", + "GEO_AREA", + "GEO_ICON", + "IMAGE", + "HYPERLOGLOG" + ], "type": "string" } }, + "required": [ + "content" + ], "type": "object" }, "id": { @@ -15696,22 +15951,23 @@ "type": { "description": "Object type", "enum": [ - "cookieSecurityConfiguration" + "computedAttribute" ], - "example": "cookieSecurityConfiguration", + "example": "computedAttribute", "type": "string" } }, "required": [ + "attributes", "id", "type" ], "type": "object" }, - "JsonApiCookieSecurityConfigurationInDocument": { + "JsonApiComputedAttributeInDocument": { "properties": { "data": { - "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationIn" + "$ref": "#/components/schemas/JsonApiComputedAttributeIn" } }, "required": [ @@ -15719,35 +15975,16 @@ ], "type": "object" }, - "JsonApiCookieSecurityConfigurationOut": { - "description": "JSON:API representation of cookieSecurityConfiguration entity.", + "JsonApiComputedAttributeLinkage": { + "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members.", "properties": { - "attributes": { - "properties": { - "lastRotation": { - "format": "date-time", - "type": "string" - }, - "rotationInterval": { - "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", - "example": "P30D", - "type": "string" - } - }, - "type": "object" - }, "id": { - "description": "API identifier of an object", - "example": "id1", - "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, "type": { - "description": "Object type", "enum": [ - "cookieSecurityConfiguration" + "computedAttribute" ], - "example": "cookieSecurityConfiguration", "type": "string" } }, @@ -15757,83 +15994,132 @@ ], "type": "object" }, - "JsonApiCookieSecurityConfigurationOutDocument": { - "properties": { - "data": { - "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationOut" - }, - "links": { - "$ref": "#/components/schemas/ObjectLinks" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - "JsonApiCookieSecurityConfigurationPatch": { - "description": "JSON:API representation of patching cookieSecurityConfiguration entity.", + "JsonApiComputedAttributeOut": { + "description": "JSON:API representation of computedAttribute entity.", "properties": { "attributes": { "properties": { - "lastRotation": { + "areRelationsValid": { + "type": "boolean" + }, + "certification": { + "description": "Certification status of the entity.", + "enum": [ + "CERTIFIED" + ], + "type": "string" + }, + "certificationMessage": { + "description": "Optional message associated with the certification.", + "nullable": true, + "type": "string" + }, + "certifiedAt": { + "description": "Time when the certification was set.", + "example": "2023-07-20 12:30", "format": "date-time", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", "type": "string" }, - "rotationInterval": { - "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", - "example": "P30D", + "content": { + "properties": { + "format": { + "description": "Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.", + "maxLength": 2048, + "nullable": true, + "type": "string" + }, + "maql": { + "maxLength": 10000, + "type": "string" + }, + "metricType": { + "description": "Categorizes metric semantics (e.g., currency).", + "enum": [ + "UNSPECIFIED", + "CURRENCY" + ], + "type": "string" + } + }, + "required": [ + "maql" + ], + "type": "object" + }, + "createdAt": { + "description": "Time of the entity creation.", + "example": "2023-07-20 12:30", + "format": "date-time", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", "type": "string" - } - }, - "type": "object" - }, - "id": { - "description": "API identifier of an object", - "example": "id1", - "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", - "type": "string" - }, - "type": { - "description": "Object type", - "enum": [ - "cookieSecurityConfiguration" - ], - "example": "cookieSecurityConfiguration", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "JsonApiCookieSecurityConfigurationPatchDocument": { - "properties": { - "data": { - "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationPatch" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - "JsonApiCspDirectiveIn": { - "description": "JSON:API representation of cspDirective entity.", - "properties": { - "attributes": { - "properties": { - "sources": { + }, + "dataType": { + "enum": [ + "INT", + "STRING", + "DATE", + "NUMERIC", + "TIMESTAMP", + "TIMESTAMP_TZ", + "BOOLEAN", + "HLL" + ], + "type": "string" + }, + "description": { + "maxLength": 10000, + "type": "string" + }, + "isHidden": { + "type": "boolean" + }, + "isNullable": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "modifiedAt": { + "description": "Time of the last entity modification.", + "example": "2023-07-20 12:30", + "format": "date-time", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", + "type": "string" + }, + "nullValue": { + "type": "string" + }, + "tags": { "items": { "type": "string" }, "type": "array" + }, + "title": { + "maxLength": 255, + "type": "string" + }, + "valueType": { + "enum": [ + "TEXT", + "HYPERLINK", + "GEO", + "GEO_LONGITUDE", + "GEO_LATITUDE", + "GEO_AREA", + "GEO_ICON", + "IMAGE", + "HYPERLOGLOG" + ], + "type": "string" } }, "required": [ - "sources" + "content" ], "type": "object" }, @@ -15843,64 +16129,744 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, - "type": { - "description": "Object type", - "enum": [ - "cspDirective" - ], - "example": "cspDirective", - "type": "string" - } - }, - "required": [ - "attributes", - "id", - "type" - ], - "type": "object" - }, - "JsonApiCspDirectiveInDocument": { - "properties": { - "data": { - "$ref": "#/components/schemas/JsonApiCspDirectiveIn" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - "JsonApiCspDirectiveOut": { - "description": "JSON:API representation of cspDirective entity.", - "properties": { - "attributes": { + "meta": { "properties": { - "sources": { - "items": { - "type": "string" + "origin": { + "properties": { + "originId": { + "description": "defines id of the workspace where the entity comes from", + "type": "string" + }, + "originType": { + "description": "defines type of the origin of the entity", + "enum": [ + "NATIVE", + "PARENT" + ], + "type": "string" + } }, - "type": "array" + "required": [ + "originId", + "originType" + ], + "type": "object" } }, - "required": [ - "sources" - ], "type": "object" }, - "id": { - "description": "API identifier of an object", - "example": "id1", - "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", - "type": "string" - }, - "type": { - "description": "Object type", - "enum": [ - "cspDirective" - ], - "example": "cspDirective", - "type": "string" - } + "relationships": { + "properties": { + "attributes": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiAttributeToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "certifiedBy": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiUserIdentifierToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "computedAttributes": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributeToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "createdBy": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiUserIdentifierToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "datasets": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiDatasetToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "facts": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiFactToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "labels": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiLabelToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "metrics": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiMetricToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "modifiedBy": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiUserIdentifierToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "parameters": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiParameterToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + } + }, + "type": "object" + }, + "type": { + "description": "Object type", + "enum": [ + "computedAttribute" + ], + "example": "computedAttribute", + "type": "string" + } + }, + "required": [ + "attributes", + "id", + "type" + ], + "type": "object" + }, + "JsonApiComputedAttributeOutDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributeOut" + }, + "included": { + "description": "Included resources", + "items": { + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" + }, + "type": "array", + "uniqueItems": true + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiComputedAttributeOutIncludes": { + "oneOf": [ + { + "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiComputedAttributeOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiFactOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiLabelOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiMetricOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiParameterOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiUserIdentifierOutWithLinks" + } + ] + }, + "JsonApiComputedAttributeOutList": { + "description": "A JSON:API document with a list of resources", + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/JsonApiComputedAttributeOutWithLinks" + }, + "type": "array", + "uniqueItems": true + }, + "included": { + "description": "Included resources", + "items": { + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" + }, + "type": "array", + "uniqueItems": true + }, + "links": { + "$ref": "#/components/schemas/ListLinks" + }, + "meta": { + "properties": { + "page": { + "$ref": "#/components/schemas/PageMetadata" + } + }, + "type": "object" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiComputedAttributeOutWithLinks": { + "allOf": [ + { + "$ref": "#/components/schemas/JsonApiComputedAttributeOut" + }, + { + "$ref": "#/components/schemas/ObjectLinksContainer" + } + ] + }, + "JsonApiComputedAttributePatch": { + "description": "JSON:API representation of patching computedAttribute entity.", + "properties": { + "attributes": { + "properties": { + "areRelationsValid": { + "type": "boolean" + }, + "content": { + "properties": { + "format": { + "description": "Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.", + "maxLength": 2048, + "nullable": true, + "type": "string" + }, + "maql": { + "maxLength": 10000, + "type": "string" + }, + "metricType": { + "description": "Categorizes metric semantics (e.g., currency).", + "enum": [ + "UNSPECIFIED", + "CURRENCY" + ], + "type": "string" + } + }, + "required": [ + "maql" + ], + "type": "object" + }, + "dataType": { + "enum": [ + "INT", + "STRING", + "DATE", + "NUMERIC", + "TIMESTAMP", + "TIMESTAMP_TZ", + "BOOLEAN", + "HLL" + ], + "type": "string" + }, + "description": { + "maxLength": 10000, + "type": "string" + }, + "isHidden": { + "type": "boolean" + }, + "isNullable": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "nullValue": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "maxLength": 255, + "type": "string" + }, + "valueType": { + "enum": [ + "TEXT", + "HYPERLINK", + "GEO", + "GEO_LONGITUDE", + "GEO_LATITUDE", + "GEO_AREA", + "GEO_ICON", + "IMAGE", + "HYPERLOGLOG" + ], + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "computedAttribute" + ], + "example": "computedAttribute", + "type": "string" + } + }, + "required": [ + "attributes", + "id", + "type" + ], + "type": "object" + }, + "JsonApiComputedAttributePatchDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributePatch" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiComputedAttributePostOptionalId": { + "description": "JSON:API representation of computedAttribute entity.", + "properties": { + "attributes": { + "properties": { + "areRelationsValid": { + "type": "boolean" + }, + "content": { + "properties": { + "format": { + "description": "Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.", + "maxLength": 2048, + "nullable": true, + "type": "string" + }, + "maql": { + "maxLength": 10000, + "type": "string" + }, + "metricType": { + "description": "Categorizes metric semantics (e.g., currency).", + "enum": [ + "UNSPECIFIED", + "CURRENCY" + ], + "type": "string" + } + }, + "required": [ + "maql" + ], + "type": "object" + }, + "dataType": { + "enum": [ + "INT", + "STRING", + "DATE", + "NUMERIC", + "TIMESTAMP", + "TIMESTAMP_TZ", + "BOOLEAN", + "HLL" + ], + "type": "string" + }, + "description": { + "maxLength": 10000, + "type": "string" + }, + "isHidden": { + "type": "boolean" + }, + "isNullable": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "nullValue": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "maxLength": 255, + "type": "string" + }, + "valueType": { + "enum": [ + "TEXT", + "HYPERLINK", + "GEO", + "GEO_LONGITUDE", + "GEO_LATITUDE", + "GEO_AREA", + "GEO_ICON", + "IMAGE", + "HYPERLOGLOG" + ], + "type": "string" + } + }, + "required": [ + "content" + ], + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "computedAttribute" + ], + "example": "computedAttribute", + "type": "string" + } + }, + "required": [ + "attributes", + "type" + ], + "type": "object" + }, + "JsonApiComputedAttributePostOptionalIdDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributePostOptionalId" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiComputedAttributeToManyLinkage": { + "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.", + "items": { + "$ref": "#/components/schemas/JsonApiComputedAttributeLinkage" + }, + "type": "array" + }, + "JsonApiCookieSecurityConfigurationIn": { + "description": "JSON:API representation of cookieSecurityConfiguration entity.", + "properties": { + "attributes": { + "properties": { + "lastRotation": { + "format": "date-time", + "type": "string" + }, + "rotationInterval": { + "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", + "example": "P30D", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "cookieSecurityConfiguration" + ], + "example": "cookieSecurityConfiguration", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "JsonApiCookieSecurityConfigurationInDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationIn" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiCookieSecurityConfigurationOut": { + "description": "JSON:API representation of cookieSecurityConfiguration entity.", + "properties": { + "attributes": { + "properties": { + "lastRotation": { + "format": "date-time", + "type": "string" + }, + "rotationInterval": { + "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", + "example": "P30D", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "cookieSecurityConfiguration" + ], + "example": "cookieSecurityConfiguration", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "JsonApiCookieSecurityConfigurationOutDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationOut" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiCookieSecurityConfigurationPatch": { + "description": "JSON:API representation of patching cookieSecurityConfiguration entity.", + "properties": { + "attributes": { + "properties": { + "lastRotation": { + "format": "date-time", + "type": "string" + }, + "rotationInterval": { + "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", + "example": "P30D", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "cookieSecurityConfiguration" + ], + "example": "cookieSecurityConfiguration", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "JsonApiCookieSecurityConfigurationPatchDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationPatch" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiCspDirectiveIn": { + "description": "JSON:API representation of cspDirective entity.", + "properties": { + "attributes": { + "properties": { + "sources": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "sources" + ], + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "cspDirective" + ], + "example": "cspDirective", + "type": "string" + } + }, + "required": [ + "attributes", + "id", + "type" + ], + "type": "object" + }, + "JsonApiCspDirectiveInDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiCspDirectiveIn" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiCspDirectiveOut": { + "description": "JSON:API representation of cspDirective entity.", + "properties": { + "attributes": { + "properties": { + "sources": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "sources" + ], + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "cspDirective" + ], + "example": "cspDirective", + "type": "string" + } }, "required": [ "attributes", @@ -21811,7 +22777,7 @@ }, "analyzedValue": { "description": "Metric value in the analyzed period (the observed value that triggered the anomaly)", - "example": 2.6E+9 + "example": 2600000000.0 }, "areRelationsValid": { "type": "boolean" @@ -21863,7 +22829,7 @@ }, "referenceValue": { "description": "Metric value in the reference period", - "example": 2.4E+9 + "example": 2400000000.0 }, "sourceCount": { "description": "Number of source documents used for generation", @@ -21985,7 +22951,7 @@ }, "analyzedValue": { "description": "Metric value in the analyzed period (the observed value that triggered the anomaly)", - "example": 2.6E+9 + "example": 2600000000.0 }, "areRelationsValid": { "type": "boolean" @@ -22041,7 +23007,7 @@ }, "referenceValue": { "description": "Metric value in the reference period", - "example": 2.4E+9 + "example": 2400000000.0 }, "sourceCount": { "description": "Number of source documents used for generation", @@ -22251,7 +23217,7 @@ }, "analyzedValue": { "description": "Metric value in the analyzed period (the observed value that triggered the anomaly)", - "example": 2.6E+9 + "example": 2600000000.0 }, "areRelationsValid": { "type": "boolean" @@ -22303,7 +23269,7 @@ }, "referenceValue": { "description": "Metric value in the reference period", - "example": 2.4E+9 + "example": 2400000000.0 }, "sourceCount": { "description": "Number of source documents used for generation", @@ -22417,7 +23383,7 @@ }, "analyzedValue": { "description": "Metric value in the analyzed period (the observed value that triggered the anomaly)", - "example": 2.6E+9 + "example": 2600000000.0 }, "areRelationsValid": { "type": "boolean" @@ -22469,7 +23435,7 @@ }, "referenceValue": { "description": "Metric value in the reference period", - "example": 2.4E+9 + "example": 2400000000.0 }, "sourceCount": { "description": "Number of source documents used for generation", @@ -24129,6 +25095,17 @@ ], "type": "object" }, + "computedAttributes": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributeToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, "createdBy": { "properties": { "data": { @@ -24233,7 +25210,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiMetricOutIncludes" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" }, "type": "array", "uniqueItems": true @@ -24247,31 +25224,6 @@ ], "type": "object" }, - "JsonApiMetricOutIncludes": { - "oneOf": [ - { - "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiFactOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiLabelOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiMetricOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiParameterOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiUserIdentifierOutWithLinks" - } - ] - }, "JsonApiMetricOutList": { "description": "A JSON:API document with a list of resources", "properties": { @@ -24285,7 +25237,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiMetricOutIncludes" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" }, "type": "array", "uniqueItems": true @@ -27004,6 +27956,17 @@ ], "type": "object" }, + "computedAttributes": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributeToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, "datasets": { "properties": { "data": { @@ -27127,6 +28090,9 @@ { "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks" }, + { + "$ref": "#/components/schemas/JsonApiComputedAttributeOutWithLinks" + }, { "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" }, @@ -28562,6 +29528,17 @@ ], "type": "object" }, + "computedAttributes": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributeToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, "createdBy": { "properties": { "data": { @@ -28666,7 +29643,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiMetricOutIncludes" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" }, "type": "array", "uniqueItems": true @@ -28693,7 +29670,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiMetricOutIncludes" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" }, "type": "array", "uniqueItems": true @@ -36154,7 +37131,8 @@ "enum": [ "metric", "visualizationObject", - "analyticalDashboard" + "analyticalDashboard", + "computedAttribute" ], "type": "string" } @@ -38285,8 +39263,8 @@ "type": "string" }, "type": { - "description": "Specifies entity type which could be label, attribute, fact, or metric.", - "pattern": "^(label)|(attribute)|(fact)|(metric)$", + "description": "Specifies entity type which could be label, attribute, computedAttribute, fact, or metric.", + "pattern": "^(label|attribute|computedAttribute|fact|metric)$", "type": "string" } }, @@ -54850,19 +55828,506 @@ }, "/api/v1/entities/users/{userId}/userSettings": { "get": { - "operationId": "getAllEntities@UserSettings", + "operationId": "getAllEntities@UserSettings", + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "content==JsonNodeValue;type==SettingTypeValue", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/size" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=page,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "page", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutList" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutList" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "List all settings for a user", + "tags": [ + "User Settings", + "entities", + "user-setting-controller" + ] + }, + "post": { + "operationId": "createEntity@UserSettings", + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Post new user settings for the user", + "tags": [ + "User Settings", + "entities", + "user-setting-controller" + ] + } + }, + "/api/v1/entities/users/{userId}/userSettings/{id}": { + "delete": { + "operationId": "deleteEntity@UserSettings", + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/idPathParameter" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/Deleted" + } + }, + "summary": "Delete a setting for a user", + "tags": [ + "User Settings", + "entities", + "user-setting-controller" + ] + }, + "get": { + "operationId": "getEntity@UserSettings", + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/idPathParameter" + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "content==JsonNodeValue;type==SettingTypeValue", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Get a setting for a user", + "tags": [ + "User Settings", + "entities", + "user-setting-controller" + ] + }, + "put": { + "operationId": "updateEntity@UserSettings", + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/idPathParameter" + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "content==JsonNodeValue;type==SettingTypeValue", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Put new user settings for the user", + "tags": [ + "User Settings", + "entities", + "user-setting-controller" + ] + } + }, + "/api/v1/entities/workspaces": { + "get": { + "description": "Space of the shared interest", + "operationId": "getAllEntities@Workspaces", + "parameters": [ + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "name==someString;earlyAccess==someString;parent.id==321", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + }, + { + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "parent", + "explode": false, + "in": "query", + "name": "include", + "required": false, + "schema": { + "items": { + "enum": [ + "workspaces", + "parent", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/size" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,page,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "config", + "permissions", + "hierarchy", + "dataModelDatasets", + "page", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceOutList" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceOutList" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Get Workspace entities", + "tags": [ + "Workspaces - Entity APIs", + "entities", + "workspace-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to view this object type.", + "permissions": [ + "VIEW" + ] + } + }, + "post": { + "description": "Space of the shared interest", + "operationId": "createEntity@Workspaces", + "parameters": [ + { + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "parent", + "explode": false, + "in": "query", + "name": "include", + "required": false, + "schema": { + "items": { + "enum": [ + "workspaces", + "parent", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "config", + "permissions", + "hierarchy", + "dataModelDatasets", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Post Workspace entities", + "tags": [ + "Workspaces - Entity APIs", + "entities", + "workspace-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "MANAGE" + ] + } + } + }, + "/api/v1/entities/workspaces/{id}": { + "delete": { + "description": "Space of the shared interest", + "operationId": "deleteEntity@Workspaces", + "parameters": [ + { + "$ref": "#/components/parameters/idPathParameter" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/Deleted" + } + }, + "summary": "Delete Workspace entity", + "tags": [ + "Workspaces - Entity APIs", + "entities", + "workspace-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "MANAGE" + ] + } + }, + "get": { + "description": "Space of the shared interest", + "operationId": "getEntity@Workspaces", "parameters": [ { - "in": "path", - "name": "userId", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/idPathParameter" }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "content==JsonNodeValue;type==SettingTypeValue", + "example": "name==someString;earlyAccess==someString;parent.id==321", "in": "query", "name": "filter", "schema": { @@ -54870,17 +56335,28 @@ } }, { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/size" - }, - { - "$ref": "#/components/parameters/sort" + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "parent", + "explode": false, + "in": "query", + "name": "include", + "required": false, + "schema": { + "items": { + "enum": [ + "workspaces", + "parent", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" }, { "description": "Include Meta objects.", - "example": "metaInclude=page,all", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", "explode": false, "in": "query", "name": "metaInclude", @@ -54889,7 +56365,10 @@ "description": "Included meta objects", "items": { "enum": [ - "page", + "config", + "permissions", + "hierarchy", + "dataModelDatasets", "all", "ALL" ], @@ -54906,187 +56385,160 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutList" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutList" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "List all settings for a user", + "summary": "Get Workspace entity", "tags": [ - "User Settings", + "Workspaces - Entity APIs", "entities", - "user-setting-controller" - ] + "workspace-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to view this object type.", + "permissions": [ + "VIEW" + ] + } }, - "post": { - "operationId": "createEntity@UserSettings", + "patch": { + "description": "Space of the shared interest", + "operationId": "patchEntity@Workspaces", "parameters": [ { - "in": "path", - "name": "userId", - "required": true, + "$ref": "#/components/parameters/idPathParameter" + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "name==someString;earlyAccess==someString;parent.id==321", + "in": "query", + "name": "filter", "schema": { "type": "string" } + }, + { + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "parent", + "explode": false, + "in": "query", + "name": "include", + "required": false, + "schema": { + "items": { + "enum": [ + "workspaces", + "parent", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + "$ref": "#/components/schemas/JsonApiWorkspacePatchDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + "$ref": "#/components/schemas/JsonApiWorkspacePatchDocument" } } }, "required": true }, "responses": { - "201": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Post new user settings for the user", + "summary": "Patch Workspace entity", "tags": [ - "User Settings", + "Workspaces - Entity APIs", "entities", - "user-setting-controller" - ] - } - }, - "/api/v1/entities/users/{userId}/userSettings/{id}": { - "delete": { - "operationId": "deleteEntity@UserSettings", - "parameters": [ - { - "in": "path", - "name": "userId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/idPathParameter" - } + "workspace-controller" ], - "responses": { - "204": { - "$ref": "#/components/responses/Deleted" - } - }, - "summary": "Delete a setting for a user", - "tags": [ - "User Settings", - "entities", - "user-setting-controller" - ] + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "MANAGE" + ] + } }, - "get": { - "operationId": "getEntity@UserSettings", + "put": { + "description": "Space of the shared interest", + "operationId": "updateEntity@Workspaces", "parameters": [ - { - "in": "path", - "name": "userId", - "required": true, - "schema": { - "type": "string" - } - }, { "$ref": "#/components/parameters/idPathParameter" }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "content==JsonNodeValue;type==SettingTypeValue", + "example": "name==someString;earlyAccess==someString;parent.id==321", "in": "query", "name": "filter", "schema": { "type": "string" } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" - } - } - }, - "description": "Request successfully processed" - } - }, - "summary": "Get a setting for a user", - "tags": [ - "User Settings", - "entities", - "user-setting-controller" - ] - }, - "put": { - "operationId": "updateEntity@UserSettings", - "parameters": [ - { - "in": "path", - "name": "userId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/idPathParameter" }, { - "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "content==JsonNodeValue;type==SettingTypeValue", + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "parent", + "explode": false, "in": "query", - "name": "filter", + "name": "include", + "required": false, "schema": { - "type": "string" - } + "items": { + "enum": [ + "workspaces", + "parent", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" } } }, @@ -55097,34 +56549,62 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Put new user settings for the user", + "summary": "Put Workspace entity", "tags": [ - "User Settings", + "Workspaces - Entity APIs", "entities", - "user-setting-controller" - ] + "workspace-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "MANAGE" + ] + } } }, - "/api/v1/entities/workspaces": { + "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts": { "get": { - "description": "Space of the shared interest", - "operationId": "getAllEntities@Workspaces", + "operationId": "getAllEntities@AggregatedFacts", "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "origin", + "required": false, + "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], + "type": "string" + } + }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "name==someString;earlyAccess==someString;parent.id==321", + "example": "description==someString;tags==v1,v2,v3;dataset.id==321;sourceFact.id==321", "in": "query", "name": "filter", "schema": { @@ -55133,7 +56613,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "parent", + "example": "dataset,sourceFact,sourceAttribute", "explode": false, "in": "query", "name": "include", @@ -55141,8 +56621,12 @@ "schema": { "items": { "enum": [ - "workspaces", - "parent", + "datasets", + "facts", + "attributes", + "dataset", + "sourceFact", + "sourceAttribute", "ALL" ], "type": "string" @@ -55160,9 +56644,18 @@ { "$ref": "#/components/parameters/sort" }, + { + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, { "description": "Include Meta objects.", - "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,page,all", + "example": "metaInclude=origin,page,all", "explode": false, "in": "query", "name": "metaInclude", @@ -55171,10 +56664,7 @@ "description": "Included meta objects", "items": { "enum": [ - "config", - "permissions", - "hierarchy", - "dataModelDatasets", + "origin", "page", "all", "ALL" @@ -55192,23 +56682,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutList" + "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutList" + "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Get Workspace entities", + "summary": "Get all Aggregated Facts", "tags": [ - "Workspaces - Entity APIs", + "Facts", "entities", - "workspace-controller" + "aggregated-fact-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -55216,14 +56706,119 @@ "VIEW" ] } - }, + } + }, + "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts/search": { "post": { - "description": "Space of the shared interest", - "operationId": "createEntity@Workspaces", + "operationId": "searchEntities@AggregatedFacts", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "origin", + "required": false, + "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], + "type": "string" + } + }, + { + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitySearchBody" + } + } + }, + "description": "Search request body with filter, pagination, and sorting options", + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "The search endpoint (beta)", + "tags": [ + "Facts", + "entities", + "aggregated-fact-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to view this object type.", + "permissions": [ + "VIEW" + ] + } + } + }, + "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts/{objectId}": { + "get": { + "operationId": "getEntity@AggregatedFacts", "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "objectId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "description==someString;tags==v1,v2,v3;dataset.id==321;sourceFact.id==321", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "parent", + "example": "dataset,sourceFact,sourceAttribute", "explode": false, "in": "query", "name": "include", @@ -55231,8 +56826,12 @@ "schema": { "items": { "enum": [ - "workspaces", - "parent", + "datasets", + "facts", + "attributes", + "dataset", + "sourceFact", + "sourceAttribute", "ALL" ], "type": "string" @@ -55241,9 +56840,18 @@ }, "style": "form" }, + { + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, { "description": "Include Meta objects.", - "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", + "example": "metaInclude=origin,all", "explode": false, "in": "query", "name": "metaInclude", @@ -55252,10 +56860,7 @@ "description": "Included meta objects", "items": { "enum": [ - "config", - "permissions", - "hierarchy", - "dataModelDatasets", + "origin", "all", "ALL" ], @@ -55267,89 +56872,67 @@ "style": "form" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" - } - } - }, - "required": true - }, "responses": { - "201": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAggregatedFactOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAggregatedFactOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Post Workspace entities", - "tags": [ - "Workspaces - Entity APIs", - "entities", - "workspace-controller" - ], - "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", - "permissions": [ - "MANAGE" - ] - } - } - }, - "/api/v1/entities/workspaces/{id}": { - "delete": { - "description": "Space of the shared interest", - "operationId": "deleteEntity@Workspaces", - "parameters": [ - { - "$ref": "#/components/parameters/idPathParameter" - } - ], - "responses": { - "204": { - "$ref": "#/components/responses/Deleted" - } - }, - "summary": "Delete Workspace entity", + "summary": "Get an Aggregated Fact", "tags": [ - "Workspaces - Entity APIs", + "Facts", "entities", - "workspace-controller" + "aggregated-fact-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", + "description": "Contains minimal permission level required to view this object type.", "permissions": [ - "MANAGE" + "VIEW" ] } - }, + } + }, + "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards": { "get": { - "description": "Space of the shared interest", - "operationId": "getEntity@Workspaces", + "operationId": "getAllEntities@AnalyticalDashboards", "parameters": [ { - "$ref": "#/components/parameters/idPathParameter" + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "origin", + "required": false, + "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], + "type": "string" + } }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "name==someString;earlyAccess==someString;parent.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -55358,7 +56941,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "parent", + "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", "explode": false, "in": "query", "name": "include", @@ -55366,8 +56949,18 @@ "schema": { "items": { "enum": [ - "workspaces", - "parent", + "userIdentifiers", + "visualizationObjects", + "analyticalDashboards", + "labels", + "metrics", + "parameters", + "datasets", + "filterContexts", + "dashboardPlugins", + "createdBy", + "modifiedBy", + "certifiedBy", "ALL" ], "type": "string" @@ -55376,9 +56969,27 @@ }, "style": "form" }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/size" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, { "description": "Include Meta objects.", - "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", + "example": "metaInclude=permissions,origin,accessInfo,page,all", "explode": false, "in": "query", "name": "metaInclude", @@ -55387,10 +56998,10 @@ "description": "Included meta objects", "items": { "enum": [ - "config", "permissions", - "hierarchy", - "dataModelDatasets", + "origin", + "accessInfo", + "page", "all", "ALL" ], @@ -55407,23 +57018,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Get Workspace entity", + "summary": "Get all Dashboards", "tags": [ - "Workspaces - Entity APIs", + "Dashboards", "entities", - "workspace-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -55432,25 +57043,20 @@ ] } }, - "patch": { - "description": "Space of the shared interest", - "operationId": "patchEntity@Workspaces", + "post": { + "operationId": "createEntity@AnalyticalDashboards", "parameters": [ { - "$ref": "#/components/parameters/idPathParameter" - }, - { - "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "name==someString;earlyAccess==someString;parent.id==321", - "in": "query", - "name": "filter", + "in": "path", + "name": "workspaceId", + "required": true, "schema": { "type": "string" } }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "parent", + "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", "explode": false, "in": "query", "name": "include", @@ -55458,8 +57064,18 @@ "schema": { "items": { "enum": [ - "workspaces", - "parent", + "userIdentifiers", + "visualizationObjects", + "analyticalDashboards", + "labels", + "metrics", + "parameters", + "datasets", + "filterContexts", + "dashboardPlugins", + "createdBy", + "modifiedBy", + "certifiedBy", "ALL" ], "type": "string" @@ -55467,103 +57083,124 @@ "type": "array" }, "style": "form" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=permissions,origin,accessInfo,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "permissions", + "origin", + "accessInfo", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspacePatchDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPostOptionalIdDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspacePatchDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPostOptionalIdDocument" } } }, "required": true }, "responses": { - "200": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Patch Workspace entity", + "summary": "Post Dashboards", "tags": [ - "Workspaces - Entity APIs", + "Dashboards", "entities", - "workspace-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "MANAGE" + "ANALYZE" ] } - }, - "put": { - "description": "Space of the shared interest", - "operationId": "updateEntity@Workspaces", + } + }, + "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/search": { + "post": { + "operationId": "searchEntities@AnalyticalDashboards", "parameters": [ { - "$ref": "#/components/parameters/idPathParameter" + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } }, { - "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "name==someString;earlyAccess==someString;parent.id==321", "in": "query", - "name": "filter", + "name": "origin", + "required": false, "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], "type": "string" } }, { - "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "parent", - "explode": false, - "in": "query", - "name": "include", + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", "required": false, "schema": { - "items": { - "enum": [ - "workspaces", - "parent", - "ALL" - ], - "type": "string" - }, - "type": "array" - }, - "style": "form" + "default": false, + "type": "boolean" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" + "$ref": "#/components/schemas/EntitySearchBody" } } }, + "description": "Search request body with filter, pagination, and sorting options", "required": true }, "responses": { @@ -55571,35 +57208,73 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Put Workspace entity", + "summary": "The search endpoint (beta)", "tags": [ - "Workspaces - Entity APIs", + "Dashboards", "entities", - "workspace-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", + "description": "Contains minimal permission level required to view this object type.", "permissions": [ - "MANAGE" + "VIEW" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts": { + "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId}": { + "delete": { + "operationId": "deleteEntity@AnalyticalDashboards", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "objectId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/Deleted" + } + }, + "summary": "Delete a Dashboard", + "tags": [ + "Dashboards", + "entities", + "analytical-dashboard-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "ANALYZE" + ] + } + }, "get": { - "operationId": "getAllEntities@AggregatedFacts", + "operationId": "getEntity@AnalyticalDashboards", "parameters": [ { "in": "path", @@ -55610,23 +57285,16 @@ } }, { - "in": "query", - "name": "origin", - "required": false, + "in": "path", + "name": "objectId", + "required": true, "schema": { - "default": "ALL", - "description": "Defines scope of origin of objects. All by default.", - "enum": [ - "ALL", - "PARENTS", - "NATIVE" - ], "type": "string" } }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "description==someString;tags==v1,v2,v3;dataset.id==321;sourceFact.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -55635,7 +57303,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "dataset,sourceFact,sourceAttribute", + "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", "explode": false, "in": "query", "name": "include", @@ -55643,12 +57311,18 @@ "schema": { "items": { "enum": [ + "userIdentifiers", + "visualizationObjects", + "analyticalDashboards", + "labels", + "metrics", + "parameters", "datasets", - "facts", - "attributes", - "dataset", - "sourceFact", - "sourceAttribute", + "filterContexts", + "dashboardPlugins", + "createdBy", + "modifiedBy", + "certifiedBy", "ALL" ], "type": "string" @@ -55657,15 +57331,6 @@ }, "style": "form" }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/size" - }, - { - "$ref": "#/components/parameters/sort" - }, { "in": "header", "name": "X-GDC-VALIDATE-RELATIONS", @@ -55677,7 +57342,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=origin,page,all", + "example": "metaInclude=permissions,origin,accessInfo,all", "explode": false, "in": "query", "name": "metaInclude", @@ -55686,8 +57351,9 @@ "description": "Included meta objects", "items": { "enum": [ + "permissions", "origin", - "page", + "accessInfo", "all", "ALL" ], @@ -55704,23 +57370,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get all Aggregated Facts", + "summary": "Get a Dashboard", "tags": [ - "Facts", + "Dashboards", "entities", - "aggregated-fact-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -55728,11 +57394,9 @@ "VIEW" ] } - } - }, - "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts/search": { - "post": { - "operationId": "searchEntities@AggregatedFacts", + }, + "patch": { + "operationId": "patchEntity@AnalyticalDashboards", "parameters": [ { "in": "path", @@ -55743,39 +57407,66 @@ } }, { + "in": "path", + "name": "objectId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", - "name": "origin", - "required": false, + "name": "filter", "schema": { - "default": "ALL", - "description": "Defines scope of origin of objects. All by default.", - "enum": [ - "ALL", - "PARENTS", - "NATIVE" - ], "type": "string" } }, { - "in": "header", - "name": "X-GDC-VALIDATE-RELATIONS", + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "explode": false, + "in": "query", + "name": "include", "required": false, "schema": { - "default": false, - "type": "boolean" - } + "items": { + "enum": [ + "userIdentifiers", + "visualizationObjects", + "analyticalDashboards", + "labels", + "metrics", + "parameters", + "datasets", + "filterContexts", + "dashboardPlugins", + "createdBy", + "modifiedBy", + "certifiedBy", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/EntitySearchBody" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPatchDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPatchDocument" } } }, - "description": "Search request body with filter, pagination, and sorting options", "required": true }, "responses": { @@ -55783,35 +57474,33 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "The search endpoint (beta)", + "summary": "Patch a Dashboard", "tags": [ - "Facts", + "Dashboards", "entities", - "aggregated-fact-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to view this object type.", + "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "VIEW" + "ANALYZE" ] } - } - }, - "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts/{objectId}": { - "get": { - "operationId": "getEntity@AggregatedFacts", + }, + "put": { + "operationId": "updateEntity@AnalyticalDashboards", "parameters": [ { "in": "path", @@ -55831,7 +57520,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "description==someString;tags==v1,v2,v3;dataset.id==321;sourceFact.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -55840,7 +57529,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "dataset,sourceFact,sourceAttribute", + "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", "explode": false, "in": "query", "name": "include", @@ -55848,12 +57537,18 @@ "schema": { "items": { "enum": [ + "userIdentifiers", + "visualizationObjects", + "analyticalDashboards", + "labels", + "metrics", + "parameters", "datasets", - "facts", - "attributes", - "dataset", - "sourceFact", - "sourceAttribute", + "filterContexts", + "dashboardPlugins", + "createdBy", + "modifiedBy", + "certifiedBy", "ALL" ], "type": "string" @@ -55861,73 +57556,57 @@ "type": "array" }, "style": "form" - }, - { - "in": "header", - "name": "X-GDC-VALIDATE-RELATIONS", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "description": "Include Meta objects.", - "example": "metaInclude=origin,all", - "explode": false, - "in": "query", - "name": "metaInclude", - "required": false, - "schema": { - "description": "Included meta objects", - "items": { - "enum": [ - "origin", - "all", - "ALL" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "style": "form" } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardInDocument" + } + } + }, + "required": true + }, "responses": { "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get an Aggregated Fact", + "summary": "Put Dashboards", "tags": [ - "Facts", + "Dashboards", "entities", - "aggregated-fact-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to view this object type.", + "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "VIEW" + "ANALYZE" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards": { + "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies": { "get": { - "operationId": "getAllEntities@AnalyticalDashboards", + "operationId": "getAllEntities@AttributeHierarchies", "parameters": [ { "in": "path", @@ -55963,7 +57642,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "example": "createdBy,modifiedBy,attributes", "explode": false, "in": "query", "name": "include", @@ -55972,17 +57651,9 @@ "items": { "enum": [ "userIdentifiers", - "visualizationObjects", - "analyticalDashboards", - "labels", - "metrics", - "parameters", - "datasets", - "filterContexts", - "dashboardPlugins", + "attributes", "createdBy", "modifiedBy", - "certifiedBy", "ALL" ], "type": "string" @@ -56011,7 +57682,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,origin,accessInfo,page,all", + "example": "metaInclude=origin,page,all", "explode": false, "in": "query", "name": "metaInclude", @@ -56020,9 +57691,7 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "origin", - "accessInfo", "page", "all", "ALL" @@ -56040,23 +57709,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Get all Dashboards", + "summary": "Get all Attribute Hierarchies", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -56066,7 +57735,7 @@ } }, "post": { - "operationId": "createEntity@AnalyticalDashboards", + "operationId": "createEntity@AttributeHierarchies", "parameters": [ { "in": "path", @@ -56078,7 +57747,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "example": "createdBy,modifiedBy,attributes", "explode": false, "in": "query", "name": "include", @@ -56087,17 +57756,9 @@ "items": { "enum": [ "userIdentifiers", - "visualizationObjects", - "analyticalDashboards", - "labels", - "metrics", - "parameters", - "datasets", - "filterContexts", - "dashboardPlugins", + "attributes", "createdBy", "modifiedBy", - "certifiedBy", "ALL" ], "type": "string" @@ -56108,7 +57769,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,origin,accessInfo,all", + "example": "metaInclude=origin,all", "explode": false, "in": "query", "name": "metaInclude", @@ -56117,9 +57778,7 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "origin", - "accessInfo", "all", "ALL" ], @@ -56135,12 +57794,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPostOptionalIdDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPostOptionalIdDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" } } }, @@ -56151,23 +57810,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Post Dashboards", + "summary": "Post Attribute Hierarchies", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", @@ -56177,9 +57836,9 @@ } } }, - "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/search": { + "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/search": { "post": { - "operationId": "searchEntities@AnalyticalDashboards", + "operationId": "searchEntities@AttributeHierarchies", "parameters": [ { "in": "path", @@ -56230,12 +57889,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" } } }, @@ -56244,9 +57903,9 @@ }, "summary": "The search endpoint (beta)", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -56256,9 +57915,9 @@ } } }, - "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId}": { + "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/{objectId}": { "delete": { - "operationId": "deleteEntity@AnalyticalDashboards", + "operationId": "deleteEntity@AttributeHierarchies", "parameters": [ { "in": "path", @@ -56282,11 +57941,11 @@ "$ref": "#/components/responses/Deleted" } }, - "summary": "Delete a Dashboard", + "summary": "Delete an Attribute Hierarchy", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", @@ -56296,7 +57955,7 @@ } }, "get": { - "operationId": "getEntity@AnalyticalDashboards", + "operationId": "getEntity@AttributeHierarchies", "parameters": [ { "in": "path", @@ -56325,7 +57984,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "example": "createdBy,modifiedBy,attributes", "explode": false, "in": "query", "name": "include", @@ -56334,17 +57993,9 @@ "items": { "enum": [ "userIdentifiers", - "visualizationObjects", - "analyticalDashboards", - "labels", - "metrics", - "parameters", - "datasets", - "filterContexts", - "dashboardPlugins", + "attributes", "createdBy", "modifiedBy", - "certifiedBy", "ALL" ], "type": "string" @@ -56364,7 +58015,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,origin,accessInfo,all", + "example": "metaInclude=origin,all", "explode": false, "in": "query", "name": "metaInclude", @@ -56373,9 +58024,7 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "origin", - "accessInfo", "all", "ALL" ], @@ -56392,23 +58041,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get a Dashboard", + "summary": "Get an Attribute Hierarchy", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -56418,7 +58067,7 @@ } }, "patch": { - "operationId": "patchEntity@AnalyticalDashboards", + "operationId": "patchEntity@AttributeHierarchies", "parameters": [ { "in": "path", @@ -56447,7 +58096,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "example": "createdBy,modifiedBy,attributes", "explode": false, "in": "query", "name": "include", @@ -56456,17 +58105,9 @@ "items": { "enum": [ "userIdentifiers", - "visualizationObjects", - "analyticalDashboards", - "labels", - "metrics", - "parameters", - "datasets", - "filterContexts", - "dashboardPlugins", + "attributes", "createdBy", "modifiedBy", - "certifiedBy", "ALL" ], "type": "string" @@ -56480,12 +58121,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPatchDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyPatchDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPatchDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyPatchDocument" } } }, @@ -56496,23 +58137,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Patch a Dashboard", + "summary": "Patch an Attribute Hierarchy", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", @@ -56522,7 +58163,7 @@ } }, "put": { - "operationId": "updateEntity@AnalyticalDashboards", + "operationId": "updateEntity@AttributeHierarchies", "parameters": [ { "in": "path", @@ -56551,7 +58192,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "example": "createdBy,modifiedBy,attributes", "explode": false, "in": "query", "name": "include", @@ -56560,17 +58201,9 @@ "items": { "enum": [ "userIdentifiers", - "visualizationObjects", - "analyticalDashboards", - "labels", - "metrics", - "parameters", - "datasets", - "filterContexts", - "dashboardPlugins", + "attributes", "createdBy", "modifiedBy", - "certifiedBy", "ALL" ], "type": "string" @@ -56584,180 +58217,51 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardInDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardInDocument" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" - } - } - }, - "description": "Request successfully processed" - } - }, - "summary": "Put Dashboards", - "tags": [ - "Dashboards", - "entities", - "analytical-dashboard-controller" - ], - "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", - "permissions": [ - "ANALYZE" - ] - } - } - }, - "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies": { - "get": { - "operationId": "getAllEntities@AttributeHierarchies", - "parameters": [ - { - "in": "path", - "name": "workspaceId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "origin", - "required": false, - "schema": { - "default": "ALL", - "description": "Defines scope of origin of objects. All by default.", - "enum": [ - "ALL", - "PARENTS", - "NATIVE" - ], - "type": "string" - } - }, - { - "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", - "in": "query", - "name": "filter", - "schema": { - "type": "string" - } - }, - { - "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,attributes", - "explode": false, - "in": "query", - "name": "include", - "required": false, - "schema": { - "items": { - "enum": [ - "userIdentifiers", - "attributes", - "createdBy", - "modifiedBy", - "ALL" - ], - "type": "string" - }, - "type": "array" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/size" - }, - { - "$ref": "#/components/parameters/sort" - }, - { - "in": "header", - "name": "X-GDC-VALIDATE-RELATIONS", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "description": "Include Meta objects.", - "example": "metaInclude=origin,page,all", - "explode": false, - "in": "query", - "name": "metaInclude", - "required": false, - "schema": { - "description": "Included meta objects", - "items": { - "enum": [ - "origin", - "page", - "all", - "ALL" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "style": "form" - } - ], + "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" + } + } + }, + "required": true + }, "responses": { "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get all Attribute Hierarchies", + "summary": "Put an Attribute Hierarchy", "tags": [ "Attribute Hierarchies", "entities", "attribute-hierarchy-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to view this object type.", + "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "VIEW" + "ANALYZE" ] } - }, - "post": { - "operationId": "createEntity@AttributeHierarchies", + } + }, + "/api/v1/entities/workspaces/{workspaceId}/attributes": { + "get": { + "operationId": "getAllEntities@Attributes", "parameters": [ { "in": "path", @@ -56767,9 +58271,33 @@ "type": "string" } }, + { + "in": "query", + "name": "origin", + "required": false, + "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], + "type": "string" + } + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,attributes", + "example": "dataset,defaultView,labels,attributeHierarchies", "explode": false, "in": "query", "name": "include", @@ -56777,10 +58305,11 @@ "schema": { "items": { "enum": [ - "userIdentifiers", - "attributes", - "createdBy", - "modifiedBy", + "datasets", + "labels", + "attributeHierarchies", + "dataset", + "defaultView", "ALL" ], "type": "string" @@ -56789,9 +58318,27 @@ }, "style": "form" }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/size" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, { "description": "Include Meta objects.", - "example": "metaInclude=origin,all", + "example": "metaInclude=origin,page,all", "explode": false, "in": "query", "name": "metaInclude", @@ -56801,6 +58348,7 @@ "items": { "enum": [ "origin", + "page", "all", "ALL" ], @@ -56812,55 +58360,40 @@ "style": "form" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" - } - } - }, - "required": true - }, "responses": { - "201": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Post Attribute Hierarchies", + "summary": "Get all Attributes", "tags": [ - "Attribute Hierarchies", + "Attributes", "entities", - "attribute-hierarchy-controller" + "attribute-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", + "description": "Contains minimal permission level required to view this object type.", "permissions": [ - "ANALYZE" + "VIEW" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/search": { + "/api/v1/entities/workspaces/{workspaceId}/attributes/search": { "post": { - "operationId": "searchEntities@AttributeHierarchies", + "operationId": "searchEntities@Attributes", "parameters": [ { "in": "path", @@ -56911,12 +58444,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" + "$ref": "#/components/schemas/JsonApiAttributeOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" + "$ref": "#/components/schemas/JsonApiAttributeOutList" } } }, @@ -56925,9 +58458,9 @@ }, "summary": "The search endpoint (beta)", "tags": [ - "Attribute Hierarchies", + "Attributes", "entities", - "attribute-hierarchy-controller" + "attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -56937,47 +58470,9 @@ } } }, - "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/{objectId}": { - "delete": { - "operationId": "deleteEntity@AttributeHierarchies", - "parameters": [ - { - "in": "path", - "name": "workspaceId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "objectId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "$ref": "#/components/responses/Deleted" - } - }, - "summary": "Delete an Attribute Hierarchy", - "tags": [ - "Attribute Hierarchies", - "entities", - "attribute-hierarchy-controller" - ], - "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", - "permissions": [ - "ANALYZE" - ] - } - }, + "/api/v1/entities/workspaces/{workspaceId}/attributes/{objectId}": { "get": { - "operationId": "getEntity@AttributeHierarchies", + "operationId": "getEntity@Attributes", "parameters": [ { "in": "path", @@ -56997,7 +58492,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", + "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", "in": "query", "name": "filter", "schema": { @@ -57006,7 +58501,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,attributes", + "example": "dataset,defaultView,labels,attributeHierarchies", "explode": false, "in": "query", "name": "include", @@ -57014,10 +58509,11 @@ "schema": { "items": { "enum": [ - "userIdentifiers", - "attributes", - "createdBy", - "modifiedBy", + "datasets", + "labels", + "attributeHierarchies", + "dataset", + "defaultView", "ALL" ], "type": "string" @@ -57063,23 +58559,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get an Attribute Hierarchy", + "summary": "Get an Attribute", "tags": [ - "Attribute Hierarchies", + "Attributes", "entities", - "attribute-hierarchy-controller" + "attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -57089,7 +58585,7 @@ } }, "patch": { - "operationId": "patchEntity@AttributeHierarchies", + "operationId": "patchEntity@Attributes", "parameters": [ { "in": "path", @@ -57109,7 +58605,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", + "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", "in": "query", "name": "filter", "schema": { @@ -57118,7 +58614,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,attributes", + "example": "dataset,defaultView,labels,attributeHierarchies", "explode": false, "in": "query", "name": "include", @@ -57126,10 +58622,11 @@ "schema": { "items": { "enum": [ - "userIdentifiers", - "attributes", - "createdBy", - "modifiedBy", + "datasets", + "labels", + "attributeHierarchies", + "dataset", + "defaultView", "ALL" ], "type": "string" @@ -57143,12 +58640,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyPatchDocument" + "$ref": "#/components/schemas/JsonApiAttributePatchDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyPatchDocument" + "$ref": "#/components/schemas/JsonApiAttributePatchDocument" } } }, @@ -57159,33 +58656,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Patch an Attribute Hierarchy", + "summary": "Patch an Attribute (beta)", "tags": [ - "Attribute Hierarchies", + "Attributes", "entities", - "attribute-hierarchy-controller" + "attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "ANALYZE" + "MANAGE" ] } - }, - "put": { - "operationId": "updateEntity@AttributeHierarchies", + } + }, + "/api/v1/entities/workspaces/{workspaceId}/automationResults/search": { + "post": { + "operationId": "searchEntities@AutomationResults", "parameters": [ { "in": "path", @@ -57196,58 +58695,39 @@ } }, { - "in": "path", - "name": "objectId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", - "name": "filter", + "name": "origin", + "required": false, "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], "type": "string" } }, { - "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,attributes", - "explode": false, - "in": "query", - "name": "include", + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", "required": false, "schema": { - "items": { - "enum": [ - "userIdentifiers", - "attributes", - "createdBy", - "modifiedBy", - "ALL" - ], - "type": "string" - }, - "type": "array" - }, - "style": "form" + "default": false, + "type": "boolean" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" + "$ref": "#/components/schemas/EntitySearchBody" } } }, + "description": "Search request body with filter, pagination, and sorting options", "required": true }, "responses": { @@ -57255,35 +58735,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationResultOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationResultOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Put an Attribute Hierarchy", + "summary": "The search endpoint (beta)", "tags": [ - "Attribute Hierarchies", + "Automations", "entities", - "attribute-hierarchy-controller" + "automation-result-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", + "description": "Contains minimal permission level required to view this object type.", "permissions": [ - "ANALYZE" + "VIEW" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/attributes": { + "/api/v1/entities/workspaces/{workspaceId}/automations": { "get": { - "operationId": "getAllEntities@Attributes", + "operationId": "getAllEntities@Automations", "parameters": [ { "in": "path", @@ -57310,7 +58790,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", + "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", "in": "query", "name": "filter", "schema": { @@ -57319,7 +58799,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "dataset,defaultView,labels,attributeHierarchies", + "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", "explode": false, "in": "query", "name": "include", @@ -57327,11 +58807,17 @@ "schema": { "items": { "enum": [ - "datasets", - "labels", - "attributeHierarchies", - "dataset", - "defaultView", + "notificationChannels", + "analyticalDashboards", + "userIdentifiers", + "exportDefinitions", + "users", + "automationResults", + "notificationChannel", + "analyticalDashboard", + "createdBy", + "modifiedBy", + "recipients", "ALL" ], "type": "string" @@ -57387,23 +58873,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Get all Attributes", + "summary": "Get all Automations", "tags": [ - "Attributes", + "Automations", "entities", - "attribute-controller" + "automation-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -57411,11 +58897,119 @@ "VIEW" ] } + }, + "post": { + "operationId": "createEntity@Automations", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "explode": false, + "in": "query", + "name": "include", + "required": false, + "schema": { + "items": { + "enum": [ + "notificationChannels", + "analyticalDashboards", + "userIdentifiers", + "exportDefinitions", + "users", + "automationResults", + "notificationChannel", + "analyticalDashboard", + "createdBy", + "modifiedBy", + "recipients", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=origin,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "origin", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAutomationInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAutomationInDocument" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Post Automations", + "tags": [ + "Automations", + "entities", + "automation-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "CREATE_AUTOMATION" + ] + } } }, - "/api/v1/entities/workspaces/{workspaceId}/attributes/search": { + "/api/v1/entities/workspaces/{workspaceId}/automations/search": { "post": { - "operationId": "searchEntities@Attributes", + "operationId": "searchEntities@Automations", "parameters": [ { "in": "path", @@ -57466,12 +59060,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutList" } } }, @@ -57480,9 +59074,9 @@ }, "summary": "The search endpoint (beta)", "tags": [ - "Attributes", + "Automations", "entities", - "attribute-controller" + "automation-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -57492,9 +59086,47 @@ } } }, - "/api/v1/entities/workspaces/{workspaceId}/attributes/{objectId}": { + "/api/v1/entities/workspaces/{workspaceId}/automations/{objectId}": { + "delete": { + "operationId": "deleteEntity@Automations", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "objectId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/Deleted" + } + }, + "summary": "Delete an Automation", + "tags": [ + "Automations", + "entities", + "automation-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "CREATE_AUTOMATION" + ] + } + }, "get": { - "operationId": "getEntity@Attributes", + "operationId": "getEntity@Automations", "parameters": [ { "in": "path", @@ -57514,7 +59146,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", + "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", "in": "query", "name": "filter", "schema": { @@ -57523,7 +59155,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "dataset,defaultView,labels,attributeHierarchies", + "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", "explode": false, "in": "query", "name": "include", @@ -57531,11 +59163,17 @@ "schema": { "items": { "enum": [ - "datasets", - "labels", - "attributeHierarchies", - "dataset", - "defaultView", + "notificationChannels", + "analyticalDashboards", + "userIdentifiers", + "exportDefinitions", + "users", + "automationResults", + "notificationChannel", + "analyticalDashboard", + "createdBy", + "modifiedBy", + "recipients", "ALL" ], "type": "string" @@ -57581,23 +59219,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get an Attribute", + "summary": "Get an Automation", "tags": [ - "Attributes", + "Automations", "entities", - "attribute-controller" + "automation-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -57607,7 +59245,7 @@ } }, "patch": { - "operationId": "patchEntity@Attributes", + "operationId": "patchEntity@Automations", "parameters": [ { "in": "path", @@ -57627,7 +59265,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", + "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", "in": "query", "name": "filter", "schema": { @@ -57636,7 +59274,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "dataset,defaultView,labels,attributeHierarchies", + "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", "explode": false, "in": "query", "name": "include", @@ -57644,11 +59282,17 @@ "schema": { "items": { "enum": [ - "datasets", - "labels", - "attributeHierarchies", - "dataset", - "defaultView", + "notificationChannels", + "analyticalDashboards", + "userIdentifiers", + "exportDefinitions", + "users", + "automationResults", + "notificationChannel", + "analyticalDashboard", + "createdBy", + "modifiedBy", + "recipients", "ALL" ], "type": "string" @@ -57662,12 +59306,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributePatchDocument" + "$ref": "#/components/schemas/JsonApiAutomationPatchDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributePatchDocument" + "$ref": "#/components/schemas/JsonApiAutomationPatchDocument" } } }, @@ -57678,35 +59322,33 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Patch an Attribute (beta)", + "summary": "Patch an Automation", "tags": [ - "Attributes", + "Automations", "entities", - "attribute-controller" + "automation-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "MANAGE" + "CREATE_AUTOMATION" ] } - } - }, - "/api/v1/entities/workspaces/{workspaceId}/automationResults/search": { - "post": { - "operationId": "searchEntities@AutomationResults", + }, + "put": { + "operationId": "updateEntity@Automations", "parameters": [ { "in": "path", @@ -57717,39 +59359,65 @@ } }, { + "in": "path", + "name": "objectId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", "in": "query", - "name": "origin", - "required": false, + "name": "filter", "schema": { - "default": "ALL", - "description": "Defines scope of origin of objects. All by default.", - "enum": [ - "ALL", - "PARENTS", - "NATIVE" - ], "type": "string" } }, { - "in": "header", - "name": "X-GDC-VALIDATE-RELATIONS", + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "explode": false, + "in": "query", + "name": "include", "required": false, "schema": { - "default": false, - "type": "boolean" - } + "items": { + "enum": [ + "notificationChannels", + "analyticalDashboards", + "userIdentifiers", + "exportDefinitions", + "users", + "automationResults", + "notificationChannel", + "analyticalDashboard", + "createdBy", + "modifiedBy", + "recipients", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/EntitySearchBody" + "$ref": "#/components/schemas/JsonApiAutomationInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAutomationInDocument" } } }, - "description": "Search request body with filter, pagination, and sorting options", "required": true }, "responses": { @@ -57757,35 +59425,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationResultOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationResultOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "The search endpoint (beta)", + "summary": "Put an Automation", "tags": [ "Automations", "entities", - "automation-result-controller" + "automation-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to view this object type.", + "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "VIEW" + "CREATE_AUTOMATION" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/automations": { + "/api/v1/entities/workspaces/{workspaceId}/computedAttributes": { "get": { - "operationId": "getAllEntities@Automations", + "operationId": "getAllEntities@ComputedAttributes", "parameters": [ { "in": "path", @@ -57812,7 +59480,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -57821,7 +59489,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "example": "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", "explode": false, "in": "query", "name": "include", @@ -57829,17 +59497,17 @@ "schema": { "items": { "enum": [ - "notificationChannels", - "analyticalDashboards", "userIdentifiers", - "exportDefinitions", - "users", - "automationResults", - "notificationChannel", - "analyticalDashboard", + "facts", + "attributes", + "labels", + "computedAttributes", + "metrics", + "datasets", + "parameters", "createdBy", "modifiedBy", - "recipients", + "certifiedBy", "ALL" ], "type": "string" @@ -57895,23 +59563,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutList" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutList" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Get all Automations", + "summary": "Get all Computed Attributes", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -57921,7 +59589,7 @@ } }, "post": { - "operationId": "createEntity@Automations", + "operationId": "createEntity@ComputedAttributes", "parameters": [ { "in": "path", @@ -57933,7 +59601,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "example": "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", "explode": false, "in": "query", "name": "include", @@ -57941,17 +59609,17 @@ "schema": { "items": { "enum": [ - "notificationChannels", - "analyticalDashboards", "userIdentifiers", - "exportDefinitions", - "users", - "automationResults", - "notificationChannel", - "analyticalDashboard", + "facts", + "attributes", + "labels", + "computedAttributes", + "metrics", + "datasets", + "parameters", "createdBy", "modifiedBy", - "recipients", + "certifiedBy", "ALL" ], "type": "string" @@ -57987,12 +59655,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationInDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributePostOptionalIdDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationInDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributePostOptionalIdDocument" } } }, @@ -58003,35 +59671,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Post Automations", + "summary": "Post Computed Attributes", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "CREATE_AUTOMATION" + "MANAGE" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/automations/search": { + "/api/v1/entities/workspaces/{workspaceId}/computedAttributes/search": { "post": { - "operationId": "searchEntities@Automations", + "operationId": "searchEntities@ComputedAttributes", "parameters": [ { "in": "path", @@ -58082,12 +59750,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutList" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutList" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutList" } } }, @@ -58096,9 +59764,9 @@ }, "summary": "The search endpoint (beta)", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -58108,9 +59776,9 @@ } } }, - "/api/v1/entities/workspaces/{workspaceId}/automations/{objectId}": { + "/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}": { "delete": { - "operationId": "deleteEntity@Automations", + "operationId": "deleteEntity@ComputedAttributes", "parameters": [ { "in": "path", @@ -58134,21 +59802,21 @@ "$ref": "#/components/responses/Deleted" } }, - "summary": "Delete an Automation", + "summary": "Delete a Computed Attribute", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "CREATE_AUTOMATION" + "MANAGE" ] } }, "get": { - "operationId": "getEntity@Automations", + "operationId": "getEntity@ComputedAttributes", "parameters": [ { "in": "path", @@ -58168,7 +59836,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -58177,7 +59845,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "example": "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", "explode": false, "in": "query", "name": "include", @@ -58185,17 +59853,17 @@ "schema": { "items": { "enum": [ - "notificationChannels", - "analyticalDashboards", "userIdentifiers", - "exportDefinitions", - "users", - "automationResults", - "notificationChannel", - "analyticalDashboard", + "facts", + "attributes", + "labels", + "computedAttributes", + "metrics", + "datasets", + "parameters", "createdBy", "modifiedBy", - "recipients", + "certifiedBy", "ALL" ], "type": "string" @@ -58241,23 +59909,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get an Automation", + "summary": "Get a Computed Attribute", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -58267,7 +59935,7 @@ } }, "patch": { - "operationId": "patchEntity@Automations", + "operationId": "patchEntity@ComputedAttributes", "parameters": [ { "in": "path", @@ -58287,7 +59955,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -58296,7 +59964,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "example": "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", "explode": false, "in": "query", "name": "include", @@ -58304,17 +59972,17 @@ "schema": { "items": { "enum": [ - "notificationChannels", - "analyticalDashboards", "userIdentifiers", - "exportDefinitions", - "users", - "automationResults", - "notificationChannel", - "analyticalDashboard", + "facts", + "attributes", + "labels", + "computedAttributes", + "metrics", + "datasets", + "parameters", "createdBy", "modifiedBy", - "recipients", + "certifiedBy", "ALL" ], "type": "string" @@ -58328,12 +59996,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationPatchDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributePatchDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationPatchDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributePatchDocument" } } }, @@ -58344,33 +60012,33 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Patch an Automation", + "summary": "Patch a Computed Attribute", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "CREATE_AUTOMATION" + "MANAGE" ] } }, "put": { - "operationId": "updateEntity@Automations", + "operationId": "updateEntity@ComputedAttributes", "parameters": [ { "in": "path", @@ -58390,7 +60058,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -58399,7 +60067,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "example": "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", "explode": false, "in": "query", "name": "include", @@ -58407,17 +60075,17 @@ "schema": { "items": { "enum": [ - "notificationChannels", - "analyticalDashboards", "userIdentifiers", - "exportDefinitions", - "users", - "automationResults", - "notificationChannel", - "analyticalDashboard", + "facts", + "attributes", + "labels", + "computedAttributes", + "metrics", + "datasets", + "parameters", "createdBy", "modifiedBy", - "recipients", + "certifiedBy", "ALL" ], "type": "string" @@ -58431,12 +60099,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationInDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeInDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationInDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeInDocument" } } }, @@ -58447,28 +60115,28 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Put an Automation", + "summary": "Put a Computed Attribute", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "CREATE_AUTOMATION" + "MANAGE" ] } } diff --git a/schemas/gooddata-automation-client.json b/schemas/gooddata-automation-client.json index 8eb3a2e56..2c41b22fb 100644 --- a/schemas/gooddata-automation-client.json +++ b/schemas/gooddata-automation-client.json @@ -360,6 +360,7 @@ "enum": [ "analyticalDashboard", "attribute", + "computedAttribute", "dashboardPlugin", "dataset", "fact", @@ -429,7 +430,8 @@ "attribute", "label", "fact", - "metric" + "metric", + "computedAttribute" ], "type": "string" } @@ -486,7 +488,8 @@ }, "type": { "enum": [ - "label" + "label", + "computedAttribute" ], "type": "string" } @@ -2286,6 +2289,7 @@ "aggregatedFact", "label", "metric", + "computedAttribute", "userDataFilter", "parameter", "exportDefinition", diff --git a/schemas/gooddata-export-client.json b/schemas/gooddata-export-client.json index 559faacf7..3c6168b34 100644 --- a/schemas/gooddata-export-client.json +++ b/schemas/gooddata-export-client.json @@ -256,6 +256,7 @@ "enum": [ "analyticalDashboard", "attribute", + "computedAttribute", "dashboardPlugin", "dataset", "fact", @@ -325,7 +326,8 @@ "attribute", "label", "fact", - "metric" + "metric", + "computedAttribute" ], "type": "string" } @@ -382,7 +384,8 @@ }, "type": { "enum": [ - "label" + "label", + "computedAttribute" ], "type": "string" } @@ -1602,6 +1605,7 @@ "aggregatedFact", "label", "metric", + "computedAttribute", "userDataFilter", "parameter", "exportDefinition", diff --git a/schemas/gooddata-metadata-client.json b/schemas/gooddata-metadata-client.json index 3c909d82d..56e57070c 100644 --- a/schemas/gooddata-metadata-client.json +++ b/schemas/gooddata-metadata-client.json @@ -301,6 +301,7 @@ "enum": [ "analyticalDashboard", "attribute", + "computedAttribute", "dashboardPlugin", "dataset", "fact", @@ -370,7 +371,8 @@ "attribute", "label", "fact", - "metric" + "metric", + "computedAttribute" ], "type": "string" } @@ -427,7 +429,8 @@ }, "type": { "enum": [ - "label" + "label", + "computedAttribute" ], "type": "string" } @@ -3297,6 +3300,13 @@ }, "type": "array" }, + "computedAttributes": { + "description": "A list of computed attributes available in the model.", + "items": { + "$ref": "#/components/schemas/DeclarativeComputedAttribute" + }, + "type": "array" + }, "dashboardPlugins": { "description": "A list of dashboard plugins available in the model.", "items": { @@ -3793,6 +3803,171 @@ ], "type": "object" }, + "DeclarativeComputedAttribute": { + "properties": { + "certification": { + "description": "Certification status of the entity.", + "enum": [ + "CERTIFIED" + ], + "type": "string" + }, + "certificationMessage": { + "description": "Optional message associated with the certification.", + "nullable": true, + "type": "string" + }, + "certifiedAt": { + "description": "Time when the certification was set.", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", + "type": "string" + }, + "certifiedBy": { + "$ref": "#/components/schemas/DeclarativeUserIdentifier" + }, + "content": { + "$ref": "#/components/schemas/DeclarativeComputedAttributeContent" + }, + "createdAt": { + "description": "Time of the entity creation.", + "example": "2023-07-20 12:30", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", + "type": "string" + }, + "createdBy": { + "$ref": "#/components/schemas/DeclarativeUserIdentifier" + }, + "dataType": { + "description": "Computed attribute data type", + "enum": [ + "INT", + "STRING", + "DATE", + "NUMERIC", + "TIMESTAMP", + "TIMESTAMP_TZ", + "BOOLEAN", + "HLL" + ], + "example": "STRING", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Computed attribute description.", + "example": "Sales for all the data available.", + "maxLength": 10000, + "type": "string" + }, + "id": { + "description": "Computed attribute ID.", + "example": "total-sales", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "isHidden": { + "description": "If true, this computed attribute is hidden from AI search results.", + "example": false, + "type": "boolean" + }, + "isNullable": { + "description": "Flag indicating whether the associated source column allows null values.", + "example": false, + "type": "boolean" + }, + "locale": { + "description": "Default locale for primary computed label.", + "example": "en-US", + "type": "string" + }, + "modifiedAt": { + "description": "Time of the last entity modification.", + "example": "2023-07-20 12:30", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", + "type": "string" + }, + "modifiedBy": { + "$ref": "#/components/schemas/DeclarativeUserIdentifier" + }, + "nullValue": { + "description": "Value used in coalesce during joins instead of null.", + "example": "empty_value", + "type": "string" + }, + "tags": { + "description": "A list of tags.", + "example": [ + "Revenues" + ], + "items": { + "description": "A list of tags.", + "example": "[\"Revenues\"]", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Computed attribute title.", + "example": "Total sales", + "maxLength": 255, + "type": "string" + }, + "valueType": { + "description": "Specific type of the computed attribute value", + "enum": [ + "TEXT", + "HYPERLINK", + "GEO", + "GEO_LONGITUDE", + "GEO_LATITUDE", + "GEO_AREA", + "GEO_ICON", + "IMAGE", + "HYPERLOGLOG" + ], + "type": "string" + } + }, + "required": [ + "content", + "id", + "title" + ], + "type": "object" + }, + "DeclarativeComputedAttributeContent": { + "description": "A definition of the computed attribute content.", + "properties": { + "format": { + "description": "Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.", + "example": "%0.2f", + "maxLength": 2048, + "nullable": true, + "type": "string" + }, + "maql": { + "example": "SELECT 1", + "maxLength": 10000, + "type": "string" + }, + "metricType": { + "description": "Categorizes metric semantics (e.g., currency).", + "enum": [ + "UNSPECIFIED", + "CURRENCY" + ], + "type": "string" + } + }, + "required": [ + "maql" + ], + "type": "object" + }, "DeclarativeCspDirective": { "properties": { "directive": { @@ -6957,6 +7132,7 @@ "fact", "label", "metric", + "computedAttribute", "userDataFilter", "parameter", "automation", @@ -7079,6 +7255,7 @@ "fact", "label", "metric", + "computedAttribute", "userDataFilter", "parameter", "automation", @@ -7728,6 +7905,7 @@ "aggregatedFact", "label", "metric", + "computedAttribute", "userDataFilter", "parameter", "exportDefinition", @@ -11634,21 +11812,97 @@ ], "type": "object" }, - "JsonApiCookieSecurityConfigurationIn": { - "description": "JSON:API representation of cookieSecurityConfiguration entity.", + "JsonApiComputedAttributeIn": { + "description": "JSON:API representation of computedAttribute entity.", "properties": { "attributes": { "properties": { - "lastRotation": { - "format": "date-time", + "areRelationsValid": { + "type": "boolean" + }, + "content": { + "properties": { + "format": { + "description": "Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.", + "maxLength": 2048, + "nullable": true, + "type": "string" + }, + "maql": { + "maxLength": 10000, + "type": "string" + }, + "metricType": { + "description": "Categorizes metric semantics (e.g., currency).", + "enum": [ + "UNSPECIFIED", + "CURRENCY" + ], + "type": "string" + } + }, + "required": [ + "maql" + ], + "type": "object" + }, + "dataType": { + "enum": [ + "INT", + "STRING", + "DATE", + "NUMERIC", + "TIMESTAMP", + "TIMESTAMP_TZ", + "BOOLEAN", + "HLL" + ], "type": "string" }, - "rotationInterval": { - "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", - "example": "P30D", + "description": { + "maxLength": 10000, + "type": "string" + }, + "isHidden": { + "type": "boolean" + }, + "isNullable": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "nullValue": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "maxLength": 255, + "type": "string" + }, + "valueType": { + "enum": [ + "TEXT", + "HYPERLINK", + "GEO", + "GEO_LONGITUDE", + "GEO_LATITUDE", + "GEO_AREA", + "GEO_ICON", + "IMAGE", + "HYPERLOGLOG" + ], "type": "string" } }, + "required": [ + "content" + ], "type": "object" }, "id": { @@ -11660,22 +11914,23 @@ "type": { "description": "Object type", "enum": [ - "cookieSecurityConfiguration" + "computedAttribute" ], - "example": "cookieSecurityConfiguration", + "example": "computedAttribute", "type": "string" } }, "required": [ + "attributes", "id", "type" ], "type": "object" }, - "JsonApiCookieSecurityConfigurationInDocument": { + "JsonApiComputedAttributeInDocument": { "properties": { "data": { - "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationIn" + "$ref": "#/components/schemas/JsonApiComputedAttributeIn" } }, "required": [ @@ -11683,35 +11938,16 @@ ], "type": "object" }, - "JsonApiCookieSecurityConfigurationOut": { - "description": "JSON:API representation of cookieSecurityConfiguration entity.", + "JsonApiComputedAttributeLinkage": { + "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members.", "properties": { - "attributes": { - "properties": { - "lastRotation": { - "format": "date-time", - "type": "string" - }, - "rotationInterval": { - "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", - "example": "P30D", - "type": "string" - } - }, - "type": "object" - }, "id": { - "description": "API identifier of an object", - "example": "id1", - "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, "type": { - "description": "Object type", "enum": [ - "cookieSecurityConfiguration" + "computedAttribute" ], - "example": "cookieSecurityConfiguration", "type": "string" } }, @@ -11721,83 +11957,132 @@ ], "type": "object" }, - "JsonApiCookieSecurityConfigurationOutDocument": { - "properties": { - "data": { - "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationOut" - }, - "links": { - "$ref": "#/components/schemas/ObjectLinks" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - "JsonApiCookieSecurityConfigurationPatch": { - "description": "JSON:API representation of patching cookieSecurityConfiguration entity.", + "JsonApiComputedAttributeOut": { + "description": "JSON:API representation of computedAttribute entity.", "properties": { "attributes": { "properties": { - "lastRotation": { + "areRelationsValid": { + "type": "boolean" + }, + "certification": { + "description": "Certification status of the entity.", + "enum": [ + "CERTIFIED" + ], + "type": "string" + }, + "certificationMessage": { + "description": "Optional message associated with the certification.", + "nullable": true, + "type": "string" + }, + "certifiedAt": { + "description": "Time when the certification was set.", + "example": "2023-07-20 12:30", "format": "date-time", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", "type": "string" }, - "rotationInterval": { - "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", - "example": "P30D", + "content": { + "properties": { + "format": { + "description": "Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.", + "maxLength": 2048, + "nullable": true, + "type": "string" + }, + "maql": { + "maxLength": 10000, + "type": "string" + }, + "metricType": { + "description": "Categorizes metric semantics (e.g., currency).", + "enum": [ + "UNSPECIFIED", + "CURRENCY" + ], + "type": "string" + } + }, + "required": [ + "maql" + ], + "type": "object" + }, + "createdAt": { + "description": "Time of the entity creation.", + "example": "2023-07-20 12:30", + "format": "date-time", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", "type": "string" - } - }, - "type": "object" - }, - "id": { - "description": "API identifier of an object", - "example": "id1", - "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", - "type": "string" - }, - "type": { - "description": "Object type", - "enum": [ - "cookieSecurityConfiguration" - ], - "example": "cookieSecurityConfiguration", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "JsonApiCookieSecurityConfigurationPatchDocument": { - "properties": { - "data": { - "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationPatch" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - "JsonApiCspDirectiveIn": { - "description": "JSON:API representation of cspDirective entity.", - "properties": { - "attributes": { - "properties": { - "sources": { + }, + "dataType": { + "enum": [ + "INT", + "STRING", + "DATE", + "NUMERIC", + "TIMESTAMP", + "TIMESTAMP_TZ", + "BOOLEAN", + "HLL" + ], + "type": "string" + }, + "description": { + "maxLength": 10000, + "type": "string" + }, + "isHidden": { + "type": "boolean" + }, + "isNullable": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "modifiedAt": { + "description": "Time of the last entity modification.", + "example": "2023-07-20 12:30", + "format": "date-time", + "nullable": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}", + "type": "string" + }, + "nullValue": { + "type": "string" + }, + "tags": { "items": { "type": "string" }, "type": "array" + }, + "title": { + "maxLength": 255, + "type": "string" + }, + "valueType": { + "enum": [ + "TEXT", + "HYPERLINK", + "GEO", + "GEO_LONGITUDE", + "GEO_LATITUDE", + "GEO_AREA", + "GEO_ICON", + "IMAGE", + "HYPERLOGLOG" + ], + "type": "string" } }, "required": [ - "sources" + "content" ], "type": "object" }, @@ -11807,65 +12092,745 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, - "type": { - "description": "Object type", - "enum": [ - "cspDirective" - ], - "example": "cspDirective", - "type": "string" - } - }, - "required": [ - "attributes", - "id", - "type" - ], - "type": "object" - }, - "JsonApiCspDirectiveInDocument": { - "properties": { - "data": { - "$ref": "#/components/schemas/JsonApiCspDirectiveIn" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - "JsonApiCspDirectiveOut": { - "description": "JSON:API representation of cspDirective entity.", - "properties": { - "attributes": { + "meta": { "properties": { - "sources": { - "items": { - "type": "string" + "origin": { + "properties": { + "originId": { + "description": "defines id of the workspace where the entity comes from", + "type": "string" + }, + "originType": { + "description": "defines type of the origin of the entity", + "enum": [ + "NATIVE", + "PARENT" + ], + "type": "string" + } }, - "type": "array" + "required": [ + "originId", + "originType" + ], + "type": "object" } }, - "required": [ - "sources" - ], "type": "object" }, - "id": { - "description": "API identifier of an object", - "example": "id1", - "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", - "type": "string" - }, - "type": { - "description": "Object type", - "enum": [ - "cspDirective" - ], - "example": "cspDirective", - "type": "string" - } - }, + "relationships": { + "properties": { + "attributes": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiAttributeToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "certifiedBy": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiUserIdentifierToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "computedAttributes": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributeToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "createdBy": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiUserIdentifierToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "datasets": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiDatasetToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "facts": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiFactToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "labels": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiLabelToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "metrics": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiMetricToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "modifiedBy": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiUserIdentifierToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "parameters": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiParameterToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + } + }, + "type": "object" + }, + "type": { + "description": "Object type", + "enum": [ + "computedAttribute" + ], + "example": "computedAttribute", + "type": "string" + } + }, + "required": [ + "attributes", + "id", + "type" + ], + "type": "object" + }, + "JsonApiComputedAttributeOutDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributeOut" + }, + "included": { + "description": "Included resources", + "items": { + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" + }, + "type": "array", + "uniqueItems": true + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiComputedAttributeOutIncludes": { + "oneOf": [ + { + "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiComputedAttributeOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiFactOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiLabelOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiMetricOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiParameterOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiUserIdentifierOutWithLinks" + } + ] + }, + "JsonApiComputedAttributeOutList": { + "description": "A JSON:API document with a list of resources", + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/JsonApiComputedAttributeOutWithLinks" + }, + "type": "array", + "uniqueItems": true + }, + "included": { + "description": "Included resources", + "items": { + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" + }, + "type": "array", + "uniqueItems": true + }, + "links": { + "$ref": "#/components/schemas/ListLinks" + }, + "meta": { + "properties": { + "page": { + "$ref": "#/components/schemas/PageMetadata" + } + }, + "type": "object" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiComputedAttributeOutWithLinks": { + "allOf": [ + { + "$ref": "#/components/schemas/JsonApiComputedAttributeOut" + }, + { + "$ref": "#/components/schemas/ObjectLinksContainer" + } + ] + }, + "JsonApiComputedAttributePatch": { + "description": "JSON:API representation of patching computedAttribute entity.", + "properties": { + "attributes": { + "properties": { + "areRelationsValid": { + "type": "boolean" + }, + "content": { + "properties": { + "format": { + "description": "Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.", + "maxLength": 2048, + "nullable": true, + "type": "string" + }, + "maql": { + "maxLength": 10000, + "type": "string" + }, + "metricType": { + "description": "Categorizes metric semantics (e.g., currency).", + "enum": [ + "UNSPECIFIED", + "CURRENCY" + ], + "type": "string" + } + }, + "required": [ + "maql" + ], + "type": "object" + }, + "dataType": { + "enum": [ + "INT", + "STRING", + "DATE", + "NUMERIC", + "TIMESTAMP", + "TIMESTAMP_TZ", + "BOOLEAN", + "HLL" + ], + "type": "string" + }, + "description": { + "maxLength": 10000, + "type": "string" + }, + "isHidden": { + "type": "boolean" + }, + "isNullable": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "nullValue": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "maxLength": 255, + "type": "string" + }, + "valueType": { + "enum": [ + "TEXT", + "HYPERLINK", + "GEO", + "GEO_LONGITUDE", + "GEO_LATITUDE", + "GEO_AREA", + "GEO_ICON", + "IMAGE", + "HYPERLOGLOG" + ], + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "computedAttribute" + ], + "example": "computedAttribute", + "type": "string" + } + }, + "required": [ + "attributes", + "id", + "type" + ], + "type": "object" + }, + "JsonApiComputedAttributePatchDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributePatch" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiComputedAttributePostOptionalId": { + "description": "JSON:API representation of computedAttribute entity.", + "properties": { + "attributes": { + "properties": { + "areRelationsValid": { + "type": "boolean" + }, + "content": { + "properties": { + "format": { + "description": "Excel-like format string with optional dynamic tokens. Filter value tokens: [$FILTER:] for raw filter value passthrough. Currency tokens: [$CURRENCY:] for currency symbol, with optional forms :symbol, :narrow, :code, :name. Locale abbreviations: [$K], [$M], [$B], [$T] for locale-specific scale abbreviations. Tokens are resolved at execution time based on AFM filters and user's format locale. Single-value filters only; multi-value filters use fallback values.", + "maxLength": 2048, + "nullable": true, + "type": "string" + }, + "maql": { + "maxLength": 10000, + "type": "string" + }, + "metricType": { + "description": "Categorizes metric semantics (e.g., currency).", + "enum": [ + "UNSPECIFIED", + "CURRENCY" + ], + "type": "string" + } + }, + "required": [ + "maql" + ], + "type": "object" + }, + "dataType": { + "enum": [ + "INT", + "STRING", + "DATE", + "NUMERIC", + "TIMESTAMP", + "TIMESTAMP_TZ", + "BOOLEAN", + "HLL" + ], + "type": "string" + }, + "description": { + "maxLength": 10000, + "type": "string" + }, + "isHidden": { + "type": "boolean" + }, + "isNullable": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "nullValue": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "maxLength": 255, + "type": "string" + }, + "valueType": { + "enum": [ + "TEXT", + "HYPERLINK", + "GEO", + "GEO_LONGITUDE", + "GEO_LATITUDE", + "GEO_AREA", + "GEO_ICON", + "IMAGE", + "HYPERLOGLOG" + ], + "type": "string" + } + }, + "required": [ + "content" + ], + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "computedAttribute" + ], + "example": "computedAttribute", + "type": "string" + } + }, + "required": [ + "attributes", + "type" + ], + "type": "object" + }, + "JsonApiComputedAttributePostOptionalIdDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributePostOptionalId" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiComputedAttributeToManyLinkage": { + "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.", + "items": { + "$ref": "#/components/schemas/JsonApiComputedAttributeLinkage" + }, + "type": "array" + }, + "JsonApiCookieSecurityConfigurationIn": { + "description": "JSON:API representation of cookieSecurityConfiguration entity.", + "properties": { + "attributes": { + "properties": { + "lastRotation": { + "format": "date-time", + "type": "string" + }, + "rotationInterval": { + "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", + "example": "P30D", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "cookieSecurityConfiguration" + ], + "example": "cookieSecurityConfiguration", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "JsonApiCookieSecurityConfigurationInDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationIn" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiCookieSecurityConfigurationOut": { + "description": "JSON:API representation of cookieSecurityConfiguration entity.", + "properties": { + "attributes": { + "properties": { + "lastRotation": { + "format": "date-time", + "type": "string" + }, + "rotationInterval": { + "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", + "example": "P30D", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "cookieSecurityConfiguration" + ], + "example": "cookieSecurityConfiguration", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "JsonApiCookieSecurityConfigurationOutDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationOut" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiCookieSecurityConfigurationPatch": { + "description": "JSON:API representation of patching cookieSecurityConfiguration entity.", + "properties": { + "attributes": { + "properties": { + "lastRotation": { + "format": "date-time", + "type": "string" + }, + "rotationInterval": { + "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration", + "example": "P30D", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "cookieSecurityConfiguration" + ], + "example": "cookieSecurityConfiguration", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "JsonApiCookieSecurityConfigurationPatchDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationPatch" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiCspDirectiveIn": { + "description": "JSON:API representation of cspDirective entity.", + "properties": { + "attributes": { + "properties": { + "sources": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "sources" + ], + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "cspDirective" + ], + "example": "cspDirective", + "type": "string" + } + }, + "required": [ + "attributes", + "id", + "type" + ], + "type": "object" + }, + "JsonApiCspDirectiveInDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiCspDirectiveIn" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiCspDirectiveOut": { + "description": "JSON:API representation of cspDirective entity.", + "properties": { + "attributes": { + "properties": { + "sources": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "sources" + ], + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "cspDirective" + ], + "example": "cspDirective", + "type": "string" + } + }, "required": [ "attributes", "id", @@ -17611,7 +18576,7 @@ }, "analyzedValue": { "description": "Metric value in the analyzed period (the observed value that triggered the anomaly)", - "example": 2.6E+9 + "example": 2600000000.0 }, "areRelationsValid": { "type": "boolean" @@ -17663,7 +18628,7 @@ }, "referenceValue": { "description": "Metric value in the reference period", - "example": 2.4E+9 + "example": 2400000000.0 }, "sourceCount": { "description": "Number of source documents used for generation", @@ -17785,7 +18750,7 @@ }, "analyzedValue": { "description": "Metric value in the analyzed period (the observed value that triggered the anomaly)", - "example": 2.6E+9 + "example": 2600000000.0 }, "areRelationsValid": { "type": "boolean" @@ -17841,7 +18806,7 @@ }, "referenceValue": { "description": "Metric value in the reference period", - "example": 2.4E+9 + "example": 2400000000.0 }, "sourceCount": { "description": "Number of source documents used for generation", @@ -18051,7 +19016,7 @@ }, "analyzedValue": { "description": "Metric value in the analyzed period (the observed value that triggered the anomaly)", - "example": 2.6E+9 + "example": 2600000000.0 }, "areRelationsValid": { "type": "boolean" @@ -18103,7 +19068,7 @@ }, "referenceValue": { "description": "Metric value in the reference period", - "example": 2.4E+9 + "example": 2400000000.0 }, "sourceCount": { "description": "Number of source documents used for generation", @@ -18217,7 +19182,7 @@ }, "analyzedValue": { "description": "Metric value in the analyzed period (the observed value that triggered the anomaly)", - "example": 2.6E+9 + "example": 2600000000.0 }, "areRelationsValid": { "type": "boolean" @@ -18269,7 +19234,7 @@ }, "referenceValue": { "description": "Metric value in the reference period", - "example": 2.4E+9 + "example": 2400000000.0 }, "sourceCount": { "description": "Number of source documents used for generation", @@ -19789,6 +20754,17 @@ ], "type": "object" }, + "computedAttributes": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributeToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, "createdBy": { "properties": { "data": { @@ -19893,7 +20869,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiMetricOutIncludes" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" }, "type": "array", "uniqueItems": true @@ -19907,31 +20883,6 @@ ], "type": "object" }, - "JsonApiMetricOutIncludes": { - "oneOf": [ - { - "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiFactOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiLabelOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiMetricOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiParameterOutWithLinks" - }, - { - "$ref": "#/components/schemas/JsonApiUserIdentifierOutWithLinks" - } - ] - }, "JsonApiMetricOutList": { "description": "A JSON:API document with a list of resources", "properties": { @@ -19945,7 +20896,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiMetricOutIncludes" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" }, "type": "array", "uniqueItems": true @@ -22634,6 +23585,17 @@ ], "type": "object" }, + "computedAttributes": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributeToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, "datasets": { "properties": { "data": { @@ -22757,6 +23719,9 @@ { "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks" }, + { + "$ref": "#/components/schemas/JsonApiComputedAttributeOutWithLinks" + }, { "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" }, @@ -24192,6 +25157,17 @@ ], "type": "object" }, + "computedAttributes": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiComputedAttributeToManyLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + }, "createdBy": { "properties": { "data": { @@ -24296,7 +25272,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiMetricOutIncludes" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" }, "type": "array", "uniqueItems": true @@ -24323,7 +25299,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiMetricOutIncludes" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutIncludes" }, "type": "array", "uniqueItems": true @@ -29654,7 +30630,8 @@ "enum": [ "metric", "visualizationObject", - "analyticalDashboard" + "analyticalDashboard", + "computedAttribute" ], "type": "string" } @@ -41054,19 +42031,506 @@ }, "/api/v1/entities/users/{userId}/userSettings": { "get": { - "operationId": "getAllEntities@UserSettings", + "operationId": "getAllEntities@UserSettings", + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "content==JsonNodeValue;type==SettingTypeValue", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/size" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=page,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "page", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutList" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutList" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "List all settings for a user", + "tags": [ + "User Settings", + "entities", + "user-setting-controller" + ] + }, + "post": { + "operationId": "createEntity@UserSettings", + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Post new user settings for the user", + "tags": [ + "User Settings", + "entities", + "user-setting-controller" + ] + } + }, + "/api/v1/entities/users/{userId}/userSettings/{id}": { + "delete": { + "operationId": "deleteEntity@UserSettings", + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/idPathParameter" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/Deleted" + } + }, + "summary": "Delete a setting for a user", + "tags": [ + "User Settings", + "entities", + "user-setting-controller" + ] + }, + "get": { + "operationId": "getEntity@UserSettings", + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/idPathParameter" + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "content==JsonNodeValue;type==SettingTypeValue", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Get a setting for a user", + "tags": [ + "User Settings", + "entities", + "user-setting-controller" + ] + }, + "put": { + "operationId": "updateEntity@UserSettings", + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/idPathParameter" + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "content==JsonNodeValue;type==SettingTypeValue", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Put new user settings for the user", + "tags": [ + "User Settings", + "entities", + "user-setting-controller" + ] + } + }, + "/api/v1/entities/workspaces": { + "get": { + "description": "Space of the shared interest", + "operationId": "getAllEntities@Workspaces", + "parameters": [ + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "name==someString;earlyAccess==someString;parent.id==321", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + }, + { + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "parent", + "explode": false, + "in": "query", + "name": "include", + "required": false, + "schema": { + "items": { + "enum": [ + "workspaces", + "parent", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/size" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,page,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "config", + "permissions", + "hierarchy", + "dataModelDatasets", + "page", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceOutList" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceOutList" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Get Workspace entities", + "tags": [ + "Workspaces - Entity APIs", + "entities", + "workspace-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to view this object type.", + "permissions": [ + "VIEW" + ] + } + }, + "post": { + "description": "Space of the shared interest", + "operationId": "createEntity@Workspaces", + "parameters": [ + { + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "parent", + "explode": false, + "in": "query", + "name": "include", + "required": false, + "schema": { + "items": { + "enum": [ + "workspaces", + "parent", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "config", + "permissions", + "hierarchy", + "dataModelDatasets", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Post Workspace entities", + "tags": [ + "Workspaces - Entity APIs", + "entities", + "workspace-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "MANAGE" + ] + } + } + }, + "/api/v1/entities/workspaces/{id}": { + "delete": { + "description": "Space of the shared interest", + "operationId": "deleteEntity@Workspaces", + "parameters": [ + { + "$ref": "#/components/parameters/idPathParameter" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/Deleted" + } + }, + "summary": "Delete Workspace entity", + "tags": [ + "Workspaces - Entity APIs", + "entities", + "workspace-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "MANAGE" + ] + } + }, + "get": { + "description": "Space of the shared interest", + "operationId": "getEntity@Workspaces", "parameters": [ { - "in": "path", - "name": "userId", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/idPathParameter" }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "content==JsonNodeValue;type==SettingTypeValue", + "example": "name==someString;earlyAccess==someString;parent.id==321", "in": "query", "name": "filter", "schema": { @@ -41074,17 +42538,28 @@ } }, { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/size" - }, - { - "$ref": "#/components/parameters/sort" + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "parent", + "explode": false, + "in": "query", + "name": "include", + "required": false, + "schema": { + "items": { + "enum": [ + "workspaces", + "parent", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" }, { "description": "Include Meta objects.", - "example": "metaInclude=page,all", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", "explode": false, "in": "query", "name": "metaInclude", @@ -41093,7 +42568,10 @@ "description": "Included meta objects", "items": { "enum": [ - "page", + "config", + "permissions", + "hierarchy", + "dataModelDatasets", "all", "ALL" ], @@ -41110,187 +42588,160 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutList" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutList" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "List all settings for a user", + "summary": "Get Workspace entity", "tags": [ - "User Settings", + "Workspaces - Entity APIs", "entities", - "user-setting-controller" - ] + "workspace-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to view this object type.", + "permissions": [ + "VIEW" + ] + } }, - "post": { - "operationId": "createEntity@UserSettings", + "patch": { + "description": "Space of the shared interest", + "operationId": "patchEntity@Workspaces", "parameters": [ { - "in": "path", - "name": "userId", - "required": true, + "$ref": "#/components/parameters/idPathParameter" + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "name==someString;earlyAccess==someString;parent.id==321", + "in": "query", + "name": "filter", "schema": { "type": "string" } + }, + { + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "parent", + "explode": false, + "in": "query", + "name": "include", + "required": false, + "schema": { + "items": { + "enum": [ + "workspaces", + "parent", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + "$ref": "#/components/schemas/JsonApiWorkspacePatchDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + "$ref": "#/components/schemas/JsonApiWorkspacePatchDocument" } } }, "required": true }, "responses": { - "201": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Post new user settings for the user", + "summary": "Patch Workspace entity", "tags": [ - "User Settings", + "Workspaces - Entity APIs", "entities", - "user-setting-controller" - ] - } - }, - "/api/v1/entities/users/{userId}/userSettings/{id}": { - "delete": { - "operationId": "deleteEntity@UserSettings", - "parameters": [ - { - "in": "path", - "name": "userId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/idPathParameter" - } + "workspace-controller" ], - "responses": { - "204": { - "$ref": "#/components/responses/Deleted" - } - }, - "summary": "Delete a setting for a user", - "tags": [ - "User Settings", - "entities", - "user-setting-controller" - ] + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "MANAGE" + ] + } }, - "get": { - "operationId": "getEntity@UserSettings", + "put": { + "description": "Space of the shared interest", + "operationId": "updateEntity@Workspaces", "parameters": [ - { - "in": "path", - "name": "userId", - "required": true, - "schema": { - "type": "string" - } - }, { "$ref": "#/components/parameters/idPathParameter" }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "content==JsonNodeValue;type==SettingTypeValue", + "example": "name==someString;earlyAccess==someString;parent.id==321", "in": "query", "name": "filter", "schema": { "type": "string" } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" - } - } - }, - "description": "Request successfully processed" - } - }, - "summary": "Get a setting for a user", - "tags": [ - "User Settings", - "entities", - "user-setting-controller" - ] - }, - "put": { - "operationId": "updateEntity@UserSettings", - "parameters": [ - { - "in": "path", - "name": "userId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/idPathParameter" }, { - "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "content==JsonNodeValue;type==SettingTypeValue", + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "parent", + "explode": false, "in": "query", - "name": "filter", + "name": "include", + "required": false, "schema": { - "type": "string" - } + "items": { + "enum": [ + "workspaces", + "parent", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingInDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" } } }, @@ -41301,34 +42752,62 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiUserSettingOutDocument" + "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Put new user settings for the user", + "summary": "Put Workspace entity", "tags": [ - "User Settings", + "Workspaces - Entity APIs", "entities", - "user-setting-controller" - ] + "workspace-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "MANAGE" + ] + } } }, - "/api/v1/entities/workspaces": { + "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts": { "get": { - "description": "Space of the shared interest", - "operationId": "getAllEntities@Workspaces", + "operationId": "getAllEntities@AggregatedFacts", "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "origin", + "required": false, + "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], + "type": "string" + } + }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "name==someString;earlyAccess==someString;parent.id==321", + "example": "description==someString;tags==v1,v2,v3;dataset.id==321;sourceFact.id==321", "in": "query", "name": "filter", "schema": { @@ -41337,7 +42816,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "parent", + "example": "dataset,sourceFact,sourceAttribute", "explode": false, "in": "query", "name": "include", @@ -41345,8 +42824,12 @@ "schema": { "items": { "enum": [ - "workspaces", - "parent", + "datasets", + "facts", + "attributes", + "dataset", + "sourceFact", + "sourceAttribute", "ALL" ], "type": "string" @@ -41364,9 +42847,18 @@ { "$ref": "#/components/parameters/sort" }, + { + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, { "description": "Include Meta objects.", - "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,page,all", + "example": "metaInclude=origin,page,all", "explode": false, "in": "query", "name": "metaInclude", @@ -41375,10 +42867,7 @@ "description": "Included meta objects", "items": { "enum": [ - "config", - "permissions", - "hierarchy", - "dataModelDatasets", + "origin", "page", "all", "ALL" @@ -41396,23 +42885,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutList" + "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutList" + "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Get Workspace entities", + "summary": "Get all Aggregated Facts", "tags": [ - "Workspaces - Entity APIs", + "Facts", "entities", - "workspace-controller" + "aggregated-fact-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -41420,14 +42909,119 @@ "VIEW" ] } - }, + } + }, + "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts/search": { "post": { - "description": "Space of the shared interest", - "operationId": "createEntity@Workspaces", + "operationId": "searchEntities@AggregatedFacts", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "origin", + "required": false, + "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], + "type": "string" + } + }, + { + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitySearchBody" + } + } + }, + "description": "Search request body with filter, pagination, and sorting options", + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "The search endpoint (beta)", + "tags": [ + "Facts", + "entities", + "aggregated-fact-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to view this object type.", + "permissions": [ + "VIEW" + ] + } + } + }, + "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts/{objectId}": { + "get": { + "operationId": "getEntity@AggregatedFacts", "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "objectId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "description==someString;tags==v1,v2,v3;dataset.id==321;sourceFact.id==321", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "parent", + "example": "dataset,sourceFact,sourceAttribute", "explode": false, "in": "query", "name": "include", @@ -41435,8 +43029,12 @@ "schema": { "items": { "enum": [ - "workspaces", - "parent", + "datasets", + "facts", + "attributes", + "dataset", + "sourceFact", + "sourceAttribute", "ALL" ], "type": "string" @@ -41445,9 +43043,18 @@ }, "style": "form" }, + { + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, { "description": "Include Meta objects.", - "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", + "example": "metaInclude=origin,all", "explode": false, "in": "query", "name": "metaInclude", @@ -41456,10 +43063,7 @@ "description": "Included meta objects", "items": { "enum": [ - "config", - "permissions", - "hierarchy", - "dataModelDatasets", + "origin", "all", "ALL" ], @@ -41471,89 +43075,67 @@ "style": "form" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" - } - } - }, - "required": true - }, "responses": { - "201": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAggregatedFactOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAggregatedFactOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Post Workspace entities", - "tags": [ - "Workspaces - Entity APIs", - "entities", - "workspace-controller" - ], - "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", - "permissions": [ - "MANAGE" - ] - } - } - }, - "/api/v1/entities/workspaces/{id}": { - "delete": { - "description": "Space of the shared interest", - "operationId": "deleteEntity@Workspaces", - "parameters": [ - { - "$ref": "#/components/parameters/idPathParameter" - } - ], - "responses": { - "204": { - "$ref": "#/components/responses/Deleted" - } - }, - "summary": "Delete Workspace entity", + "summary": "Get an Aggregated Fact", "tags": [ - "Workspaces - Entity APIs", + "Facts", "entities", - "workspace-controller" + "aggregated-fact-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", + "description": "Contains minimal permission level required to view this object type.", "permissions": [ - "MANAGE" + "VIEW" ] } - }, + } + }, + "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards": { "get": { - "description": "Space of the shared interest", - "operationId": "getEntity@Workspaces", + "operationId": "getAllEntities@AnalyticalDashboards", "parameters": [ { - "$ref": "#/components/parameters/idPathParameter" + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "origin", + "required": false, + "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], + "type": "string" + } }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "name==someString;earlyAccess==someString;parent.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -41562,7 +43144,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "parent", + "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", "explode": false, "in": "query", "name": "include", @@ -41570,8 +43152,18 @@ "schema": { "items": { "enum": [ - "workspaces", - "parent", + "userIdentifiers", + "visualizationObjects", + "analyticalDashboards", + "labels", + "metrics", + "parameters", + "datasets", + "filterContexts", + "dashboardPlugins", + "createdBy", + "modifiedBy", + "certifiedBy", "ALL" ], "type": "string" @@ -41580,9 +43172,27 @@ }, "style": "form" }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/size" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, { "description": "Include Meta objects.", - "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", + "example": "metaInclude=permissions,origin,accessInfo,page,all", "explode": false, "in": "query", "name": "metaInclude", @@ -41591,10 +43201,10 @@ "description": "Included meta objects", "items": { "enum": [ - "config", "permissions", - "hierarchy", - "dataModelDatasets", + "origin", + "accessInfo", + "page", "all", "ALL" ], @@ -41611,23 +43221,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Get Workspace entity", + "summary": "Get all Dashboards", "tags": [ - "Workspaces - Entity APIs", + "Dashboards", "entities", - "workspace-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -41636,25 +43246,20 @@ ] } }, - "patch": { - "description": "Space of the shared interest", - "operationId": "patchEntity@Workspaces", + "post": { + "operationId": "createEntity@AnalyticalDashboards", "parameters": [ { - "$ref": "#/components/parameters/idPathParameter" - }, - { - "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "name==someString;earlyAccess==someString;parent.id==321", - "in": "query", - "name": "filter", + "in": "path", + "name": "workspaceId", + "required": true, "schema": { "type": "string" } }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "parent", + "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", "explode": false, "in": "query", "name": "include", @@ -41662,8 +43267,18 @@ "schema": { "items": { "enum": [ - "workspaces", - "parent", + "userIdentifiers", + "visualizationObjects", + "analyticalDashboards", + "labels", + "metrics", + "parameters", + "datasets", + "filterContexts", + "dashboardPlugins", + "createdBy", + "modifiedBy", + "certifiedBy", "ALL" ], "type": "string" @@ -41671,103 +43286,124 @@ "type": "array" }, "style": "form" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=permissions,origin,accessInfo,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "permissions", + "origin", + "accessInfo", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspacePatchDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPostOptionalIdDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspacePatchDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPostOptionalIdDocument" } } }, "required": true }, "responses": { - "200": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Patch Workspace entity", + "summary": "Post Dashboards", "tags": [ - "Workspaces - Entity APIs", + "Dashboards", "entities", - "workspace-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "MANAGE" + "ANALYZE" ] } - }, - "put": { - "description": "Space of the shared interest", - "operationId": "updateEntity@Workspaces", + } + }, + "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/search": { + "post": { + "operationId": "searchEntities@AnalyticalDashboards", "parameters": [ { - "$ref": "#/components/parameters/idPathParameter" + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } }, { - "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "name==someString;earlyAccess==someString;parent.id==321", "in": "query", - "name": "filter", + "name": "origin", + "required": false, "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], "type": "string" } }, { - "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "parent", - "explode": false, - "in": "query", - "name": "include", + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", "required": false, "schema": { - "items": { - "enum": [ - "workspaces", - "parent", - "ALL" - ], - "type": "string" - }, - "type": "array" - }, - "style": "form" + "default": false, + "type": "boolean" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceInDocument" + "$ref": "#/components/schemas/EntitySearchBody" } } }, + "description": "Search request body with filter, pagination, and sorting options", "required": true }, "responses": { @@ -41775,35 +43411,73 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Put Workspace entity", + "summary": "The search endpoint (beta)", "tags": [ - "Workspaces - Entity APIs", + "Dashboards", "entities", - "workspace-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", + "description": "Contains minimal permission level required to view this object type.", "permissions": [ - "MANAGE" + "VIEW" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts": { + "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId}": { + "delete": { + "operationId": "deleteEntity@AnalyticalDashboards", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "objectId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/Deleted" + } + }, + "summary": "Delete a Dashboard", + "tags": [ + "Dashboards", + "entities", + "analytical-dashboard-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "ANALYZE" + ] + } + }, "get": { - "operationId": "getAllEntities@AggregatedFacts", + "operationId": "getEntity@AnalyticalDashboards", "parameters": [ { "in": "path", @@ -41814,23 +43488,16 @@ } }, { - "in": "query", - "name": "origin", - "required": false, + "in": "path", + "name": "objectId", + "required": true, "schema": { - "default": "ALL", - "description": "Defines scope of origin of objects. All by default.", - "enum": [ - "ALL", - "PARENTS", - "NATIVE" - ], "type": "string" } }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "description==someString;tags==v1,v2,v3;dataset.id==321;sourceFact.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -41839,7 +43506,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "dataset,sourceFact,sourceAttribute", + "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", "explode": false, "in": "query", "name": "include", @@ -41847,12 +43514,18 @@ "schema": { "items": { "enum": [ + "userIdentifiers", + "visualizationObjects", + "analyticalDashboards", + "labels", + "metrics", + "parameters", "datasets", - "facts", - "attributes", - "dataset", - "sourceFact", - "sourceAttribute", + "filterContexts", + "dashboardPlugins", + "createdBy", + "modifiedBy", + "certifiedBy", "ALL" ], "type": "string" @@ -41861,15 +43534,6 @@ }, "style": "form" }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/size" - }, - { - "$ref": "#/components/parameters/sort" - }, { "in": "header", "name": "X-GDC-VALIDATE-RELATIONS", @@ -41881,7 +43545,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=origin,page,all", + "example": "metaInclude=permissions,origin,accessInfo,all", "explode": false, "in": "query", "name": "metaInclude", @@ -41890,8 +43554,9 @@ "description": "Included meta objects", "items": { "enum": [ + "permissions", "origin", - "page", + "accessInfo", "all", "ALL" ], @@ -41908,23 +43573,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get all Aggregated Facts", + "summary": "Get a Dashboard", "tags": [ - "Facts", + "Dashboards", "entities", - "aggregated-fact-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -41932,11 +43597,9 @@ "VIEW" ] } - } - }, - "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts/search": { - "post": { - "operationId": "searchEntities@AggregatedFacts", + }, + "patch": { + "operationId": "patchEntity@AnalyticalDashboards", "parameters": [ { "in": "path", @@ -41947,39 +43610,66 @@ } }, { + "in": "path", + "name": "objectId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", - "name": "origin", - "required": false, + "name": "filter", "schema": { - "default": "ALL", - "description": "Defines scope of origin of objects. All by default.", - "enum": [ - "ALL", - "PARENTS", - "NATIVE" - ], "type": "string" } }, { - "in": "header", - "name": "X-GDC-VALIDATE-RELATIONS", + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "explode": false, + "in": "query", + "name": "include", "required": false, "schema": { - "default": false, - "type": "boolean" - } + "items": { + "enum": [ + "userIdentifiers", + "visualizationObjects", + "analyticalDashboards", + "labels", + "metrics", + "parameters", + "datasets", + "filterContexts", + "dashboardPlugins", + "createdBy", + "modifiedBy", + "certifiedBy", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/EntitySearchBody" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPatchDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPatchDocument" } } }, - "description": "Search request body with filter, pagination, and sorting options", "required": true }, "responses": { @@ -41987,35 +43677,33 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutList" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "The search endpoint (beta)", + "summary": "Patch a Dashboard", "tags": [ - "Facts", + "Dashboards", "entities", - "aggregated-fact-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to view this object type.", + "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "VIEW" + "ANALYZE" ] } - } - }, - "/api/v1/entities/workspaces/{workspaceId}/aggregatedFacts/{objectId}": { - "get": { - "operationId": "getEntity@AggregatedFacts", + }, + "put": { + "operationId": "updateEntity@AnalyticalDashboards", "parameters": [ { "in": "path", @@ -42035,7 +43723,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "description==someString;tags==v1,v2,v3;dataset.id==321;sourceFact.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -42044,7 +43732,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "dataset,sourceFact,sourceAttribute", + "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", "explode": false, "in": "query", "name": "include", @@ -42052,12 +43740,18 @@ "schema": { "items": { "enum": [ + "userIdentifiers", + "visualizationObjects", + "analyticalDashboards", + "labels", + "metrics", + "parameters", "datasets", - "facts", - "attributes", - "dataset", - "sourceFact", - "sourceAttribute", + "filterContexts", + "dashboardPlugins", + "createdBy", + "modifiedBy", + "certifiedBy", "ALL" ], "type": "string" @@ -42065,73 +43759,57 @@ "type": "array" }, "style": "form" - }, - { - "in": "header", - "name": "X-GDC-VALIDATE-RELATIONS", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "description": "Include Meta objects.", - "example": "metaInclude=origin,all", - "explode": false, - "in": "query", - "name": "metaInclude", - "required": false, - "schema": { - "description": "Included meta objects", - "items": { - "enum": [ - "origin", - "all", - "ALL" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "style": "form" } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardInDocument" + } + } + }, + "required": true + }, "responses": { "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAggregatedFactOutDocument" + "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get an Aggregated Fact", + "summary": "Put Dashboards", "tags": [ - "Facts", + "Dashboards", "entities", - "aggregated-fact-controller" + "analytical-dashboard-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to view this object type.", + "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "VIEW" + "ANALYZE" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards": { + "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies": { "get": { - "operationId": "getAllEntities@AnalyticalDashboards", + "operationId": "getAllEntities@AttributeHierarchies", "parameters": [ { "in": "path", @@ -42167,7 +43845,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "example": "createdBy,modifiedBy,attributes", "explode": false, "in": "query", "name": "include", @@ -42176,17 +43854,9 @@ "items": { "enum": [ "userIdentifiers", - "visualizationObjects", - "analyticalDashboards", - "labels", - "metrics", - "parameters", - "datasets", - "filterContexts", - "dashboardPlugins", + "attributes", "createdBy", "modifiedBy", - "certifiedBy", "ALL" ], "type": "string" @@ -42215,7 +43885,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,origin,accessInfo,page,all", + "example": "metaInclude=origin,page,all", "explode": false, "in": "query", "name": "metaInclude", @@ -42224,9 +43894,7 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "origin", - "accessInfo", "page", "all", "ALL" @@ -42244,23 +43912,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Get all Dashboards", + "summary": "Get all Attribute Hierarchies", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -42270,7 +43938,7 @@ } }, "post": { - "operationId": "createEntity@AnalyticalDashboards", + "operationId": "createEntity@AttributeHierarchies", "parameters": [ { "in": "path", @@ -42282,7 +43950,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "example": "createdBy,modifiedBy,attributes", "explode": false, "in": "query", "name": "include", @@ -42291,17 +43959,9 @@ "items": { "enum": [ "userIdentifiers", - "visualizationObjects", - "analyticalDashboards", - "labels", - "metrics", - "parameters", - "datasets", - "filterContexts", - "dashboardPlugins", + "attributes", "createdBy", "modifiedBy", - "certifiedBy", "ALL" ], "type": "string" @@ -42312,7 +43972,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,origin,accessInfo,all", + "example": "metaInclude=origin,all", "explode": false, "in": "query", "name": "metaInclude", @@ -42321,9 +43981,7 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "origin", - "accessInfo", "all", "ALL" ], @@ -42339,12 +43997,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPostOptionalIdDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPostOptionalIdDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" } } }, @@ -42355,23 +44013,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Post Dashboards", + "summary": "Post Attribute Hierarchies", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", @@ -42381,9 +44039,9 @@ } } }, - "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/search": { + "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/search": { "post": { - "operationId": "searchEntities@AnalyticalDashboards", + "operationId": "searchEntities@AttributeHierarchies", "parameters": [ { "in": "path", @@ -42434,12 +44092,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" } } }, @@ -42448,9 +44106,9 @@ }, "summary": "The search endpoint (beta)", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -42460,9 +44118,9 @@ } } }, - "/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId}": { + "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/{objectId}": { "delete": { - "operationId": "deleteEntity@AnalyticalDashboards", + "operationId": "deleteEntity@AttributeHierarchies", "parameters": [ { "in": "path", @@ -42486,11 +44144,11 @@ "$ref": "#/components/responses/Deleted" } }, - "summary": "Delete a Dashboard", + "summary": "Delete an Attribute Hierarchy", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", @@ -42500,7 +44158,7 @@ } }, "get": { - "operationId": "getEntity@AnalyticalDashboards", + "operationId": "getEntity@AttributeHierarchies", "parameters": [ { "in": "path", @@ -42529,7 +44187,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "example": "createdBy,modifiedBy,attributes", "explode": false, "in": "query", "name": "include", @@ -42538,17 +44196,9 @@ "items": { "enum": [ "userIdentifiers", - "visualizationObjects", - "analyticalDashboards", - "labels", - "metrics", - "parameters", - "datasets", - "filterContexts", - "dashboardPlugins", + "attributes", "createdBy", "modifiedBy", - "certifiedBy", "ALL" ], "type": "string" @@ -42568,7 +44218,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,origin,accessInfo,all", + "example": "metaInclude=origin,all", "explode": false, "in": "query", "name": "metaInclude", @@ -42577,9 +44227,7 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "origin", - "accessInfo", "all", "ALL" ], @@ -42596,23 +44244,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get a Dashboard", + "summary": "Get an Attribute Hierarchy", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -42622,7 +44270,7 @@ } }, "patch": { - "operationId": "patchEntity@AnalyticalDashboards", + "operationId": "patchEntity@AttributeHierarchies", "parameters": [ { "in": "path", @@ -42651,7 +44299,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "example": "createdBy,modifiedBy,attributes", "explode": false, "in": "query", "name": "include", @@ -42660,17 +44308,9 @@ "items": { "enum": [ "userIdentifiers", - "visualizationObjects", - "analyticalDashboards", - "labels", - "metrics", - "parameters", - "datasets", - "filterContexts", - "dashboardPlugins", + "attributes", "createdBy", "modifiedBy", - "certifiedBy", "ALL" ], "type": "string" @@ -42684,12 +44324,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPatchDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyPatchDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardPatchDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyPatchDocument" } } }, @@ -42700,23 +44340,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Patch a Dashboard", + "summary": "Patch an Attribute Hierarchy", "tags": [ - "Dashboards", + "Attribute Hierarchies", "entities", - "analytical-dashboard-controller" + "attribute-hierarchy-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", @@ -42726,7 +44366,7 @@ } }, "put": { - "operationId": "updateEntity@AnalyticalDashboards", + "operationId": "updateEntity@AttributeHierarchies", "parameters": [ { "in": "path", @@ -42755,7 +44395,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,certifiedBy,visualizationObjects,analyticalDashboards,labels,metrics,parameters,datasets,filterContexts,dashboardPlugins", + "example": "createdBy,modifiedBy,attributes", "explode": false, "in": "query", "name": "include", @@ -42764,17 +44404,9 @@ "items": { "enum": [ "userIdentifiers", - "visualizationObjects", - "analyticalDashboards", - "labels", - "metrics", - "parameters", - "datasets", - "filterContexts", - "dashboardPlugins", + "attributes", "createdBy", "modifiedBy", - "certifiedBy", "ALL" ], "type": "string" @@ -42788,180 +44420,51 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardInDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardInDocument" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument" - } - } - }, - "description": "Request successfully processed" - } - }, - "summary": "Put Dashboards", - "tags": [ - "Dashboards", - "entities", - "analytical-dashboard-controller" - ], - "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", - "permissions": [ - "ANALYZE" - ] - } - } - }, - "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies": { - "get": { - "operationId": "getAllEntities@AttributeHierarchies", - "parameters": [ - { - "in": "path", - "name": "workspaceId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "origin", - "required": false, - "schema": { - "default": "ALL", - "description": "Defines scope of origin of objects. All by default.", - "enum": [ - "ALL", - "PARENTS", - "NATIVE" - ], - "type": "string" - } - }, - { - "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", - "in": "query", - "name": "filter", - "schema": { - "type": "string" - } - }, - { - "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,attributes", - "explode": false, - "in": "query", - "name": "include", - "required": false, - "schema": { - "items": { - "enum": [ - "userIdentifiers", - "attributes", - "createdBy", - "modifiedBy", - "ALL" - ], - "type": "string" - }, - "type": "array" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/size" - }, - { - "$ref": "#/components/parameters/sort" - }, - { - "in": "header", - "name": "X-GDC-VALIDATE-RELATIONS", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "description": "Include Meta objects.", - "example": "metaInclude=origin,page,all", - "explode": false, - "in": "query", - "name": "metaInclude", - "required": false, - "schema": { - "description": "Included meta objects", - "items": { - "enum": [ - "origin", - "page", - "all", - "ALL" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "style": "form" - } - ], + "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" + } + } + }, + "required": true + }, "responses": { "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" + "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get all Attribute Hierarchies", + "summary": "Put an Attribute Hierarchy", "tags": [ "Attribute Hierarchies", "entities", "attribute-hierarchy-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to view this object type.", + "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "VIEW" + "ANALYZE" ] } - }, - "post": { - "operationId": "createEntity@AttributeHierarchies", + } + }, + "/api/v1/entities/workspaces/{workspaceId}/attributes": { + "get": { + "operationId": "getAllEntities@Attributes", "parameters": [ { "in": "path", @@ -42971,9 +44474,33 @@ "type": "string" } }, + { + "in": "query", + "name": "origin", + "required": false, + "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], + "type": "string" + } + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,attributes", + "example": "dataset,defaultView,labels,attributeHierarchies", "explode": false, "in": "query", "name": "include", @@ -42981,10 +44508,11 @@ "schema": { "items": { "enum": [ - "userIdentifiers", - "attributes", - "createdBy", - "modifiedBy", + "datasets", + "labels", + "attributeHierarchies", + "dataset", + "defaultView", "ALL" ], "type": "string" @@ -42993,9 +44521,27 @@ }, "style": "form" }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/size" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, { "description": "Include Meta objects.", - "example": "metaInclude=origin,all", + "example": "metaInclude=origin,page,all", "explode": false, "in": "query", "name": "metaInclude", @@ -43005,6 +44551,7 @@ "items": { "enum": [ "origin", + "page", "all", "ALL" ], @@ -43016,55 +44563,40 @@ "style": "form" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" - } - } - }, - "required": true - }, "responses": { - "201": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Post Attribute Hierarchies", + "summary": "Get all Attributes", "tags": [ - "Attribute Hierarchies", + "Attributes", "entities", - "attribute-hierarchy-controller" + "attribute-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", + "description": "Contains minimal permission level required to view this object type.", "permissions": [ - "ANALYZE" + "VIEW" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/search": { + "/api/v1/entities/workspaces/{workspaceId}/attributes/search": { "post": { - "operationId": "searchEntities@AttributeHierarchies", + "operationId": "searchEntities@Attributes", "parameters": [ { "in": "path", @@ -43115,12 +44647,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" + "$ref": "#/components/schemas/JsonApiAttributeOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutList" + "$ref": "#/components/schemas/JsonApiAttributeOutList" } } }, @@ -43129,9 +44661,9 @@ }, "summary": "The search endpoint (beta)", "tags": [ - "Attribute Hierarchies", + "Attributes", "entities", - "attribute-hierarchy-controller" + "attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -43141,47 +44673,9 @@ } } }, - "/api/v1/entities/workspaces/{workspaceId}/attributeHierarchies/{objectId}": { - "delete": { - "operationId": "deleteEntity@AttributeHierarchies", - "parameters": [ - { - "in": "path", - "name": "workspaceId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "objectId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "$ref": "#/components/responses/Deleted" - } - }, - "summary": "Delete an Attribute Hierarchy", - "tags": [ - "Attribute Hierarchies", - "entities", - "attribute-hierarchy-controller" - ], - "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", - "permissions": [ - "ANALYZE" - ] - } - }, + "/api/v1/entities/workspaces/{workspaceId}/attributes/{objectId}": { "get": { - "operationId": "getEntity@AttributeHierarchies", + "operationId": "getEntity@Attributes", "parameters": [ { "in": "path", @@ -43201,7 +44695,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", + "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", "in": "query", "name": "filter", "schema": { @@ -43210,7 +44704,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,attributes", + "example": "dataset,defaultView,labels,attributeHierarchies", "explode": false, "in": "query", "name": "include", @@ -43218,10 +44712,11 @@ "schema": { "items": { "enum": [ - "userIdentifiers", - "attributes", - "createdBy", - "modifiedBy", + "datasets", + "labels", + "attributeHierarchies", + "dataset", + "defaultView", "ALL" ], "type": "string" @@ -43267,23 +44762,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get an Attribute Hierarchy", + "summary": "Get an Attribute", "tags": [ - "Attribute Hierarchies", + "Attributes", "entities", - "attribute-hierarchy-controller" + "attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -43293,7 +44788,7 @@ } }, "patch": { - "operationId": "patchEntity@AttributeHierarchies", + "operationId": "patchEntity@Attributes", "parameters": [ { "in": "path", @@ -43313,7 +44808,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", + "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", "in": "query", "name": "filter", "schema": { @@ -43322,7 +44817,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,attributes", + "example": "dataset,defaultView,labels,attributeHierarchies", "explode": false, "in": "query", "name": "include", @@ -43330,10 +44825,11 @@ "schema": { "items": { "enum": [ - "userIdentifiers", - "attributes", - "createdBy", - "modifiedBy", + "datasets", + "labels", + "attributeHierarchies", + "dataset", + "defaultView", "ALL" ], "type": "string" @@ -43347,12 +44843,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyPatchDocument" + "$ref": "#/components/schemas/JsonApiAttributePatchDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyPatchDocument" + "$ref": "#/components/schemas/JsonApiAttributePatchDocument" } } }, @@ -43363,33 +44859,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Patch an Attribute Hierarchy", + "summary": "Patch an Attribute (beta)", "tags": [ - "Attribute Hierarchies", + "Attributes", "entities", - "attribute-hierarchy-controller" + "attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "ANALYZE" + "MANAGE" ] } - }, - "put": { - "operationId": "updateEntity@AttributeHierarchies", + } + }, + "/api/v1/entities/workspaces/{workspaceId}/automationResults/search": { + "post": { + "operationId": "searchEntities@AutomationResults", "parameters": [ { "in": "path", @@ -43400,58 +44898,39 @@ } }, { - "in": "path", - "name": "objectId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", - "name": "filter", + "name": "origin", + "required": false, "schema": { + "default": "ALL", + "description": "Defines scope of origin of objects. All by default.", + "enum": [ + "ALL", + "PARENTS", + "NATIVE" + ], "type": "string" } }, { - "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "createdBy,modifiedBy,attributes", - "explode": false, - "in": "query", - "name": "include", + "in": "header", + "name": "X-GDC-VALIDATE-RELATIONS", "required": false, "schema": { - "items": { - "enum": [ - "userIdentifiers", - "attributes", - "createdBy", - "modifiedBy", - "ALL" - ], - "type": "string" - }, - "type": "array" - }, - "style": "form" + "default": false, + "type": "boolean" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" - } - }, - "application/vnd.gooddata.api+json": { - "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyInDocument" + "$ref": "#/components/schemas/EntitySearchBody" } } }, + "description": "Search request body with filter, pagination, and sorting options", "required": true }, "responses": { @@ -43459,35 +44938,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationResultOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeHierarchyOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationResultOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Put an Attribute Hierarchy", + "summary": "The search endpoint (beta)", "tags": [ - "Attribute Hierarchies", + "Automations", "entities", - "attribute-hierarchy-controller" + "automation-result-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", + "description": "Contains minimal permission level required to view this object type.", "permissions": [ - "ANALYZE" + "VIEW" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/attributes": { + "/api/v1/entities/workspaces/{workspaceId}/automations": { "get": { - "operationId": "getAllEntities@Attributes", + "operationId": "getAllEntities@Automations", "parameters": [ { "in": "path", @@ -43514,7 +44993,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", + "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", "in": "query", "name": "filter", "schema": { @@ -43523,7 +45002,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "dataset,defaultView,labels,attributeHierarchies", + "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", "explode": false, "in": "query", "name": "include", @@ -43531,11 +45010,17 @@ "schema": { "items": { "enum": [ - "datasets", - "labels", - "attributeHierarchies", - "dataset", - "defaultView", + "notificationChannels", + "analyticalDashboards", + "userIdentifiers", + "exportDefinitions", + "users", + "automationResults", + "notificationChannel", + "analyticalDashboard", + "createdBy", + "modifiedBy", + "recipients", "ALL" ], "type": "string" @@ -43591,23 +45076,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Get all Attributes", + "summary": "Get all Automations", "tags": [ - "Attributes", + "Automations", "entities", - "attribute-controller" + "automation-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -43615,11 +45100,119 @@ "VIEW" ] } + }, + "post": { + "operationId": "createEntity@Automations", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "explode": false, + "in": "query", + "name": "include", + "required": false, + "schema": { + "items": { + "enum": [ + "notificationChannels", + "analyticalDashboards", + "userIdentifiers", + "exportDefinitions", + "users", + "automationResults", + "notificationChannel", + "analyticalDashboard", + "createdBy", + "modifiedBy", + "recipients", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=origin,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "origin", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAutomationInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAutomationInDocument" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "summary": "Post Automations", + "tags": [ + "Automations", + "entities", + "automation-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "CREATE_AUTOMATION" + ] + } } }, - "/api/v1/entities/workspaces/{workspaceId}/attributes/search": { + "/api/v1/entities/workspaces/{workspaceId}/automations/search": { "post": { - "operationId": "searchEntities@Attributes", + "operationId": "searchEntities@Automations", "parameters": [ { "in": "path", @@ -43670,12 +45263,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutList" } } }, @@ -43684,9 +45277,9 @@ }, "summary": "The search endpoint (beta)", "tags": [ - "Attributes", + "Automations", "entities", - "attribute-controller" + "automation-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -43696,9 +45289,47 @@ } } }, - "/api/v1/entities/workspaces/{workspaceId}/attributes/{objectId}": { + "/api/v1/entities/workspaces/{workspaceId}/automations/{objectId}": { + "delete": { + "operationId": "deleteEntity@Automations", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "objectId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/Deleted" + } + }, + "summary": "Delete an Automation", + "tags": [ + "Automations", + "entities", + "automation-controller" + ], + "x-gdc-security-info": { + "description": "Contains minimal permission level required to manage this object type.", + "permissions": [ + "CREATE_AUTOMATION" + ] + } + }, "get": { - "operationId": "getEntity@Attributes", + "operationId": "getEntity@Automations", "parameters": [ { "in": "path", @@ -43718,7 +45349,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", + "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", "in": "query", "name": "filter", "schema": { @@ -43727,7 +45358,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "dataset,defaultView,labels,attributeHierarchies", + "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", "explode": false, "in": "query", "name": "include", @@ -43735,11 +45366,17 @@ "schema": { "items": { "enum": [ - "datasets", - "labels", - "attributeHierarchies", - "dataset", - "defaultView", + "notificationChannels", + "analyticalDashboards", + "userIdentifiers", + "exportDefinitions", + "users", + "automationResults", + "notificationChannel", + "analyticalDashboard", + "createdBy", + "modifiedBy", + "recipients", "ALL" ], "type": "string" @@ -43785,23 +45422,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get an Attribute", + "summary": "Get an Automation", "tags": [ - "Attributes", + "Automations", "entities", - "attribute-controller" + "automation-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -43811,7 +45448,7 @@ } }, "patch": { - "operationId": "patchEntity@Attributes", + "operationId": "patchEntity@Automations", "parameters": [ { "in": "path", @@ -43831,7 +45468,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;dataset.id==321;defaultView.id==321", + "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", "in": "query", "name": "filter", "schema": { @@ -43840,7 +45477,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "dataset,defaultView,labels,attributeHierarchies", + "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", "explode": false, "in": "query", "name": "include", @@ -43848,11 +45485,17 @@ "schema": { "items": { "enum": [ - "datasets", - "labels", - "attributeHierarchies", - "dataset", - "defaultView", + "notificationChannels", + "analyticalDashboards", + "userIdentifiers", + "exportDefinitions", + "users", + "automationResults", + "notificationChannel", + "analyticalDashboard", + "createdBy", + "modifiedBy", + "recipients", "ALL" ], "type": "string" @@ -43866,12 +45509,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributePatchDocument" + "$ref": "#/components/schemas/JsonApiAutomationPatchDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributePatchDocument" + "$ref": "#/components/schemas/JsonApiAutomationPatchDocument" } } }, @@ -43882,35 +45525,33 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAttributeOutDocument" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Patch an Attribute (beta)", + "summary": "Patch an Automation", "tags": [ - "Attributes", + "Automations", "entities", - "attribute-controller" + "automation-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "MANAGE" + "CREATE_AUTOMATION" ] } - } - }, - "/api/v1/entities/workspaces/{workspaceId}/automationResults/search": { - "post": { - "operationId": "searchEntities@AutomationResults", + }, + "put": { + "operationId": "updateEntity@Automations", "parameters": [ { "in": "path", @@ -43921,39 +45562,65 @@ } }, { + "in": "path", + "name": "objectId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", "in": "query", - "name": "origin", - "required": false, + "name": "filter", "schema": { - "default": "ALL", - "description": "Defines scope of origin of objects. All by default.", - "enum": [ - "ALL", - "PARENTS", - "NATIVE" - ], "type": "string" } }, { - "in": "header", - "name": "X-GDC-VALIDATE-RELATIONS", + "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", + "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "explode": false, + "in": "query", + "name": "include", "required": false, "schema": { - "default": false, - "type": "boolean" - } + "items": { + "enum": [ + "notificationChannels", + "analyticalDashboards", + "userIdentifiers", + "exportDefinitions", + "users", + "automationResults", + "notificationChannel", + "analyticalDashboard", + "createdBy", + "modifiedBy", + "recipients", + "ALL" + ], + "type": "string" + }, + "type": "array" + }, + "style": "form" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/EntitySearchBody" + "$ref": "#/components/schemas/JsonApiAutomationInDocument" + } + }, + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiAutomationInDocument" } } }, - "description": "Search request body with filter, pagination, and sorting options", "required": true }, "responses": { @@ -43961,35 +45628,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationResultOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationResultOutList" + "$ref": "#/components/schemas/JsonApiAutomationOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "The search endpoint (beta)", + "summary": "Put an Automation", "tags": [ "Automations", "entities", - "automation-result-controller" + "automation-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to view this object type.", + "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "VIEW" + "CREATE_AUTOMATION" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/automations": { + "/api/v1/entities/workspaces/{workspaceId}/computedAttributes": { "get": { - "operationId": "getAllEntities@Automations", + "operationId": "getAllEntities@ComputedAttributes", "parameters": [ { "in": "path", @@ -44016,7 +45683,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -44025,7 +45692,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "example": "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", "explode": false, "in": "query", "name": "include", @@ -44033,17 +45700,17 @@ "schema": { "items": { "enum": [ - "notificationChannels", - "analyticalDashboards", "userIdentifiers", - "exportDefinitions", - "users", - "automationResults", - "notificationChannel", - "analyticalDashboard", + "facts", + "attributes", + "labels", + "computedAttributes", + "metrics", + "datasets", + "parameters", "createdBy", "modifiedBy", - "recipients", + "certifiedBy", "ALL" ], "type": "string" @@ -44099,23 +45766,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutList" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutList" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutList" } } }, "description": "Request successfully processed" } }, - "summary": "Get all Automations", + "summary": "Get all Computed Attributes", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -44125,7 +45792,7 @@ } }, "post": { - "operationId": "createEntity@Automations", + "operationId": "createEntity@ComputedAttributes", "parameters": [ { "in": "path", @@ -44137,7 +45804,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "example": "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", "explode": false, "in": "query", "name": "include", @@ -44145,17 +45812,17 @@ "schema": { "items": { "enum": [ - "notificationChannels", - "analyticalDashboards", "userIdentifiers", - "exportDefinitions", - "users", - "automationResults", - "notificationChannel", - "analyticalDashboard", + "facts", + "attributes", + "labels", + "computedAttributes", + "metrics", + "datasets", + "parameters", "createdBy", "modifiedBy", - "recipients", + "certifiedBy", "ALL" ], "type": "string" @@ -44191,12 +45858,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationInDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributePostOptionalIdDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationInDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributePostOptionalIdDocument" } } }, @@ -44207,35 +45874,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Post Automations", + "summary": "Post Computed Attributes", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "CREATE_AUTOMATION" + "MANAGE" ] } } }, - "/api/v1/entities/workspaces/{workspaceId}/automations/search": { + "/api/v1/entities/workspaces/{workspaceId}/computedAttributes/search": { "post": { - "operationId": "searchEntities@Automations", + "operationId": "searchEntities@ComputedAttributes", "parameters": [ { "in": "path", @@ -44286,12 +45953,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutList" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutList" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutList" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutList" } } }, @@ -44300,9 +45967,9 @@ }, "summary": "The search endpoint (beta)", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -44312,9 +45979,9 @@ } } }, - "/api/v1/entities/workspaces/{workspaceId}/automations/{objectId}": { + "/api/v1/entities/workspaces/{workspaceId}/computedAttributes/{objectId}": { "delete": { - "operationId": "deleteEntity@Automations", + "operationId": "deleteEntity@ComputedAttributes", "parameters": [ { "in": "path", @@ -44338,21 +46005,21 @@ "$ref": "#/components/responses/Deleted" } }, - "summary": "Delete an Automation", + "summary": "Delete a Computed Attribute", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "CREATE_AUTOMATION" + "MANAGE" ] } }, "get": { - "operationId": "getEntity@Automations", + "operationId": "getEntity@ComputedAttributes", "parameters": [ { "in": "path", @@ -44372,7 +46039,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -44381,7 +46048,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "example": "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", "explode": false, "in": "query", "name": "include", @@ -44389,17 +46056,17 @@ "schema": { "items": { "enum": [ - "notificationChannels", - "analyticalDashboards", "userIdentifiers", - "exportDefinitions", - "users", - "automationResults", - "notificationChannel", - "analyticalDashboard", + "facts", + "attributes", + "labels", + "computedAttributes", + "metrics", + "datasets", + "parameters", "createdBy", "modifiedBy", - "recipients", + "certifiedBy", "ALL" ], "type": "string" @@ -44445,23 +46112,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Get an Automation", + "summary": "Get a Computed Attribute", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to view this object type.", @@ -44471,7 +46138,7 @@ } }, "patch": { - "operationId": "patchEntity@Automations", + "operationId": "patchEntity@ComputedAttributes", "parameters": [ { "in": "path", @@ -44491,7 +46158,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -44500,7 +46167,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "example": "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", "explode": false, "in": "query", "name": "include", @@ -44508,17 +46175,17 @@ "schema": { "items": { "enum": [ - "notificationChannels", - "analyticalDashboards", "userIdentifiers", - "exportDefinitions", - "users", - "automationResults", - "notificationChannel", - "analyticalDashboard", + "facts", + "attributes", + "labels", + "computedAttributes", + "metrics", + "datasets", + "parameters", "createdBy", "modifiedBy", - "recipients", + "certifiedBy", "ALL" ], "type": "string" @@ -44532,12 +46199,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationPatchDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributePatchDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationPatchDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributePatchDocument" } } }, @@ -44548,33 +46215,33 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Patch an Automation", + "summary": "Patch a Computed Attribute", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "CREATE_AUTOMATION" + "MANAGE" ] } }, "put": { - "operationId": "updateEntity@Automations", + "operationId": "updateEntity@ComputedAttributes", "parameters": [ { "in": "path", @@ -44594,7 +46261,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "title==someString;description==someString;notificationChannel.id==321;analyticalDashboard.id==321", + "example": "title==someString;description==someString;createdBy.id==321;modifiedBy.id==321", "in": "query", "name": "filter", "schema": { @@ -44603,7 +46270,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "notificationChannel,analyticalDashboard,createdBy,modifiedBy,exportDefinitions,recipients,automationResults", + "example": "createdBy,modifiedBy,certifiedBy,facts,attributes,labels,computedAttributes,metrics,datasets,parameters", "explode": false, "in": "query", "name": "include", @@ -44611,17 +46278,17 @@ "schema": { "items": { "enum": [ - "notificationChannels", - "analyticalDashboards", "userIdentifiers", - "exportDefinitions", - "users", - "automationResults", - "notificationChannel", - "analyticalDashboard", + "facts", + "attributes", + "labels", + "computedAttributes", + "metrics", + "datasets", + "parameters", "createdBy", "modifiedBy", - "recipients", + "certifiedBy", "ALL" ], "type": "string" @@ -44635,12 +46302,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationInDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeInDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationInDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeInDocument" } } }, @@ -44651,28 +46318,28 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } }, "application/vnd.gooddata.api+json": { "schema": { - "$ref": "#/components/schemas/JsonApiAutomationOutDocument" + "$ref": "#/components/schemas/JsonApiComputedAttributeOutDocument" } } }, "description": "Request successfully processed" } }, - "summary": "Put an Automation", + "summary": "Put a Computed Attribute", "tags": [ - "Automations", + "Computed Attributes", "entities", - "automation-controller" + "computed-attribute-controller" ], "x-gdc-security-info": { "description": "Contains minimal permission level required to manage this object type.", "permissions": [ - "CREATE_AUTOMATION" + "MANAGE" ] } }