diff --git a/Makefile b/Makefile index a59763250..d41d10475 100644 --- a/Makefile +++ b/Makefile @@ -64,7 +64,6 @@ download: $(call download_client,afm) $(call download_client,metadata) $(call download_client,scan) - $(call download_client,"export") $(call download_client,automation) .PHONY: mypy diff --git a/gooddata-api-client/.openapi-generator/FILES b/gooddata-api-client/.openapi-generator/FILES index 19295ce6f..a8d68286b 100644 --- a/gooddata-api-client/.openapi-generator/FILES +++ b/gooddata-api-client/.openapi-generator/FILES @@ -9,11 +9,14 @@ docs/APITokensApi.md docs/AacAnalyticsModel.md docs/AacApi.md docs/AacAttributeHierarchy.md +docs/AacContainerWidget.md docs/AacDashboard.md docs/AacDashboardFilter.md docs/AacDashboardFilterFrom.md docs/AacDashboardPermissions.md docs/AacDashboardPluginLink.md +docs/AacDashboardWithTabs.md +docs/AacDashboardWithoutTabs.md docs/AacDataset.md docs/AacDatasetPrimaryKey.md docs/AacDateDataset.md @@ -32,11 +35,22 @@ docs/AacQueryFieldsValue.md docs/AacQueryFilter.md docs/AacReference.md docs/AacReferenceSource.md +docs/AacRichTextWidget.md docs/AacSection.md docs/AacTab.md docs/AacVisualization.md +docs/AacVisualizationBasicBuckets.md +docs/AacVisualizationBubbleBuckets.md +docs/AacVisualizationDependencyBuckets.md +docs/AacVisualizationGeoBuckets.md +docs/AacVisualizationLayer.md +docs/AacVisualizationScatterBuckets.md +docs/AacVisualizationStackedBuckets.md +docs/AacVisualizationSwitcherWidget.md +docs/AacVisualizationTableBuckets.md +docs/AacVisualizationTrendBuckets.md +docs/AacVisualizationWidget.md docs/AacWidget.md -docs/AacWidgetDescription.md docs/AacWidgetSize.md docs/AacWorkspaceDataFilter.md docs/AbsoluteDateFilter.md @@ -1260,11 +1274,14 @@ gooddata_api_client/exceptions.py gooddata_api_client/model/__init__.py gooddata_api_client/model/aac_analytics_model.py gooddata_api_client/model/aac_attribute_hierarchy.py +gooddata_api_client/model/aac_container_widget.py gooddata_api_client/model/aac_dashboard.py gooddata_api_client/model/aac_dashboard_filter.py gooddata_api_client/model/aac_dashboard_filter_from.py gooddata_api_client/model/aac_dashboard_permissions.py gooddata_api_client/model/aac_dashboard_plugin_link.py +gooddata_api_client/model/aac_dashboard_with_tabs.py +gooddata_api_client/model/aac_dashboard_without_tabs.py gooddata_api_client/model/aac_dataset.py gooddata_api_client/model/aac_dataset_primary_key.py gooddata_api_client/model/aac_date_dataset.py @@ -1283,11 +1300,22 @@ gooddata_api_client/model/aac_query_fields_value.py gooddata_api_client/model/aac_query_filter.py gooddata_api_client/model/aac_reference.py gooddata_api_client/model/aac_reference_source.py +gooddata_api_client/model/aac_rich_text_widget.py gooddata_api_client/model/aac_section.py gooddata_api_client/model/aac_tab.py gooddata_api_client/model/aac_visualization.py +gooddata_api_client/model/aac_visualization_basic_buckets.py +gooddata_api_client/model/aac_visualization_bubble_buckets.py +gooddata_api_client/model/aac_visualization_dependency_buckets.py +gooddata_api_client/model/aac_visualization_geo_buckets.py +gooddata_api_client/model/aac_visualization_layer.py +gooddata_api_client/model/aac_visualization_scatter_buckets.py +gooddata_api_client/model/aac_visualization_stacked_buckets.py +gooddata_api_client/model/aac_visualization_switcher_widget.py +gooddata_api_client/model/aac_visualization_table_buckets.py +gooddata_api_client/model/aac_visualization_trend_buckets.py +gooddata_api_client/model/aac_visualization_widget.py gooddata_api_client/model/aac_widget.py -gooddata_api_client/model/aac_widget_description.py gooddata_api_client/model/aac_widget_size.py gooddata_api_client/model/aac_workspace_data_filter.py gooddata_api_client/model/absolute_date_filter.py diff --git a/gooddata-api-client/README.md b/gooddata-api-client/README.md index 03169021f..70e5f231f 100644 --- a/gooddata-api-client/README.md +++ b/gooddata-api-client/README.md @@ -1138,11 +1138,14 @@ Class | Method | HTTP request | Description - [AFMFiltersInner](docs/AFMFiltersInner.md) - [AacAnalyticsModel](docs/AacAnalyticsModel.md) - [AacAttributeHierarchy](docs/AacAttributeHierarchy.md) + - [AacContainerWidget](docs/AacContainerWidget.md) - [AacDashboard](docs/AacDashboard.md) - [AacDashboardFilter](docs/AacDashboardFilter.md) - [AacDashboardFilterFrom](docs/AacDashboardFilterFrom.md) - [AacDashboardPermissions](docs/AacDashboardPermissions.md) - [AacDashboardPluginLink](docs/AacDashboardPluginLink.md) + - [AacDashboardWithTabs](docs/AacDashboardWithTabs.md) + - [AacDashboardWithoutTabs](docs/AacDashboardWithoutTabs.md) - [AacDataset](docs/AacDataset.md) - [AacDatasetPrimaryKey](docs/AacDatasetPrimaryKey.md) - [AacDateDataset](docs/AacDateDataset.md) @@ -1161,11 +1164,22 @@ Class | Method | HTTP request | Description - [AacQueryFilter](docs/AacQueryFilter.md) - [AacReference](docs/AacReference.md) - [AacReferenceSource](docs/AacReferenceSource.md) + - [AacRichTextWidget](docs/AacRichTextWidget.md) - [AacSection](docs/AacSection.md) - [AacTab](docs/AacTab.md) - [AacVisualization](docs/AacVisualization.md) + - [AacVisualizationBasicBuckets](docs/AacVisualizationBasicBuckets.md) + - [AacVisualizationBubbleBuckets](docs/AacVisualizationBubbleBuckets.md) + - [AacVisualizationDependencyBuckets](docs/AacVisualizationDependencyBuckets.md) + - [AacVisualizationGeoBuckets](docs/AacVisualizationGeoBuckets.md) + - [AacVisualizationLayer](docs/AacVisualizationLayer.md) + - [AacVisualizationScatterBuckets](docs/AacVisualizationScatterBuckets.md) + - [AacVisualizationStackedBuckets](docs/AacVisualizationStackedBuckets.md) + - [AacVisualizationSwitcherWidget](docs/AacVisualizationSwitcherWidget.md) + - [AacVisualizationTableBuckets](docs/AacVisualizationTableBuckets.md) + - [AacVisualizationTrendBuckets](docs/AacVisualizationTrendBuckets.md) + - [AacVisualizationWidget](docs/AacVisualizationWidget.md) - [AacWidget](docs/AacWidget.md) - - [AacWidgetDescription](docs/AacWidgetDescription.md) - [AacWidgetSize](docs/AacWidgetSize.md) - [AacWorkspaceDataFilter](docs/AacWorkspaceDataFilter.md) - [AbsoluteDateFilter](docs/AbsoluteDateFilter.md) diff --git a/gooddata-api-client/docs/AACAnalyticsModelApi.md b/gooddata-api-client/docs/AACAnalyticsModelApi.md index 3b62a2d58..2f97e318a 100644 --- a/gooddata-api-client/docs/AACAnalyticsModelApi.md +++ b/gooddata-api-client/docs/AACAnalyticsModelApi.md @@ -130,202 +130,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], dashboards=[ - AacDashboard( - active_tab_id="active_tab_id_example", - cross_filtering=True, - description="description_example", - enable_section_headers=True, - filter_views=True, - filters={ - "key": AacDashboardFilter( - date="date_example", - display_as="display_as_example", - _from=AacDashboardFilterFrom(None), - granularity="granularity_example", - metric_filters=[ - "metric_filters_example", - ], - mode="active", - multiselect=True, - parents=[ - JsonNode(), - ], - state=AacFilterState( - exclude=[ - "exclude_example", - ], - include=[ - "include_example", - ], - ), - title="title_example", - to=AacDashboardFilterFrom(None), - type="attribute_filter", - using="using_example", - ), - }, - id="sales-overview", - permissions=AacDashboardPermissions( - edit=AacPermission( - all=True, - user_groups=[ - "user_groups_example", - ], - users=[ - "users_example", - ], - ), - share=AacPermission( - all=True, - user_groups=[ - "user_groups_example", - ], - users=[ - "users_example", - ], - ), - view=AacPermission( - all=True, - user_groups=[ - "user_groups_example", - ], - users=[ - "users_example", - ], - ), - ), - plugins=[ - AacDashboardPluginLink( - id="id_example", - parameters=JsonNode(), - ), - ], - sections=[ - AacSection( - description="description_example", - header=True, - title="title_example", - widgets=[ - AacWidget( - additional_properties={ - "key": JsonNode(), - }, - columns=1, - content="content_example", - date="date_example", - description=AacWidgetDescription(None), - drill_down=JsonNode(), - ignore_dashboard_filters=[ - "ignore_dashboard_filters_example", - ], - ignored_filters=[ - "ignored_filters_example", - ], - interactions=[ - JsonNode(), - ], - metric="metric_example", - rows=1, - sections=[ - AacSection(), - ], - size=AacWidgetSize( - height=1, - height_as_ratio=True, - width=1, - ), - title=AacWidgetDescription(None), - type="visualization", - visualization="visualization_example", - zoom_data=True, - ), - ], - ), - ], - tabs=[ - AacTab( - filters={ - "key": AacDashboardFilter( - date="date_example", - display_as="display_as_example", - _from=AacDashboardFilterFrom(None), - granularity="granularity_example", - metric_filters=[ - "metric_filters_example", - ], - mode="active", - multiselect=True, - parents=[ - JsonNode(), - ], - state=AacFilterState( - exclude=[ - "exclude_example", - ], - include=[ - "include_example", - ], - ), - title="title_example", - to=AacDashboardFilterFrom(None), - type="attribute_filter", - using="using_example", - ), - }, - id="id_example", - sections=[ - AacSection( - description="description_example", - header=True, - title="title_example", - widgets=[ - AacWidget( - additional_properties={ - "key": JsonNode(), - }, - columns=1, - content="content_example", - date="date_example", - description=AacWidgetDescription(None), - drill_down=JsonNode(), - ignore_dashboard_filters=[ - "ignore_dashboard_filters_example", - ], - ignored_filters=[ - "ignored_filters_example", - ], - interactions=[ - JsonNode(), - ], - metric="metric_example", - rows=1, - sections=[ - AacSection(), - ], - size=AacWidgetSize( - height=1, - height_as_ratio=True, - width=1, - ), - title=AacWidgetDescription(None), - type="visualization", - visualization="visualization_example", - zoom_data=True, - ), - ], - ), - ], - title="title_example", - ), - ], - tags=[ - "tags_example", - ], - title="Sales Overview", - type="dashboard", - user_filters_reset=True, - user_filters_save=True, - ), + AacDashboard(None), ], metrics=[ AacMetric( @@ -355,93 +160,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], visualizations=[ - AacVisualization( - additional_properties={ - "key": JsonNode(), - }, - attribute=[ - AacQueryFieldsValue(None), - ], - color=[ - AacQueryFieldsValue(None), - ], - columns=[ - AacQueryFieldsValue(None), - ], - config=JsonNode(), - description="description_example", - id="sales-by-region", - is_hidden=True, - location=[ - AacQueryFieldsValue(None), - ], - metrics=[ - AacQueryFieldsValue(None), - ], - primary_measures=[ - AacQueryFieldsValue(None), - ], - query=AacQuery( - fields={ - "key": AacQueryFieldsValue(None), - }, - filter_by={ - "key": AacQueryFilter( - additional_properties={ - "key": JsonNode(), - }, - attribute="attribute_example", - bottom=1, - condition="condition_example", - _from=AacDashboardFilterFrom(None), - granularity="granularity_example", - state=AacFilterState( - exclude=[ - "exclude_example", - ], - include=[ - "include_example", - ], - ), - to=AacDashboardFilterFrom(None), - top=1, - type="date_filter", - using="using_example", - value=3.14, - ), - }, - sort_by=[ - JsonNode(), - ], - ), - rows=[ - AacQueryFieldsValue(None), - ], - secondary_measures=[ - AacQueryFieldsValue(None), - ], - segment_by=[ - AacQueryFieldsValue(None), - ], - show_in_ai_results=True, - size=[ - AacQueryFieldsValue(None), - ], - stack=[ - AacQueryFieldsValue(None), - ], - tags=[ - "tags_example", - ], - title="Sales by Region", - trend=[ - AacQueryFieldsValue(None), - ], - type="bar_chart", - view_by=[ - AacQueryFieldsValue(None), - ], - ), + AacVisualization(None), ], ) # AacAnalyticsModel | diff --git a/gooddata-api-client/docs/AacApi.md b/gooddata-api-client/docs/AacApi.md index 3b4182485..d46c12141 100644 --- a/gooddata-api-client/docs/AacApi.md +++ b/gooddata-api-client/docs/AacApi.md @@ -210,202 +210,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], dashboards=[ - AacDashboard( - active_tab_id="active_tab_id_example", - cross_filtering=True, - description="description_example", - enable_section_headers=True, - filter_views=True, - filters={ - "key": AacDashboardFilter( - date="date_example", - display_as="display_as_example", - _from=AacDashboardFilterFrom(None), - granularity="granularity_example", - metric_filters=[ - "metric_filters_example", - ], - mode="active", - multiselect=True, - parents=[ - JsonNode(), - ], - state=AacFilterState( - exclude=[ - "exclude_example", - ], - include=[ - "include_example", - ], - ), - title="title_example", - to=AacDashboardFilterFrom(None), - type="attribute_filter", - using="using_example", - ), - }, - id="sales-overview", - permissions=AacDashboardPermissions( - edit=AacPermission( - all=True, - user_groups=[ - "user_groups_example", - ], - users=[ - "users_example", - ], - ), - share=AacPermission( - all=True, - user_groups=[ - "user_groups_example", - ], - users=[ - "users_example", - ], - ), - view=AacPermission( - all=True, - user_groups=[ - "user_groups_example", - ], - users=[ - "users_example", - ], - ), - ), - plugins=[ - AacDashboardPluginLink( - id="id_example", - parameters=JsonNode(), - ), - ], - sections=[ - AacSection( - description="description_example", - header=True, - title="title_example", - widgets=[ - AacWidget( - additional_properties={ - "key": JsonNode(), - }, - columns=1, - content="content_example", - date="date_example", - description=AacWidgetDescription(None), - drill_down=JsonNode(), - ignore_dashboard_filters=[ - "ignore_dashboard_filters_example", - ], - ignored_filters=[ - "ignored_filters_example", - ], - interactions=[ - JsonNode(), - ], - metric="metric_example", - rows=1, - sections=[ - AacSection(), - ], - size=AacWidgetSize( - height=1, - height_as_ratio=True, - width=1, - ), - title=AacWidgetDescription(None), - type="visualization", - visualization="visualization_example", - zoom_data=True, - ), - ], - ), - ], - tabs=[ - AacTab( - filters={ - "key": AacDashboardFilter( - date="date_example", - display_as="display_as_example", - _from=AacDashboardFilterFrom(None), - granularity="granularity_example", - metric_filters=[ - "metric_filters_example", - ], - mode="active", - multiselect=True, - parents=[ - JsonNode(), - ], - state=AacFilterState( - exclude=[ - "exclude_example", - ], - include=[ - "include_example", - ], - ), - title="title_example", - to=AacDashboardFilterFrom(None), - type="attribute_filter", - using="using_example", - ), - }, - id="id_example", - sections=[ - AacSection( - description="description_example", - header=True, - title="title_example", - widgets=[ - AacWidget( - additional_properties={ - "key": JsonNode(), - }, - columns=1, - content="content_example", - date="date_example", - description=AacWidgetDescription(None), - drill_down=JsonNode(), - ignore_dashboard_filters=[ - "ignore_dashboard_filters_example", - ], - ignored_filters=[ - "ignored_filters_example", - ], - interactions=[ - JsonNode(), - ], - metric="metric_example", - rows=1, - sections=[ - AacSection(), - ], - size=AacWidgetSize( - height=1, - height_as_ratio=True, - width=1, - ), - title=AacWidgetDescription(None), - type="visualization", - visualization="visualization_example", - zoom_data=True, - ), - ], - ), - ], - title="title_example", - ), - ], - tags=[ - "tags_example", - ], - title="Sales Overview", - type="dashboard", - user_filters_reset=True, - user_filters_save=True, - ), + AacDashboard(None), ], metrics=[ AacMetric( @@ -435,93 +240,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], visualizations=[ - AacVisualization( - additional_properties={ - "key": JsonNode(), - }, - attribute=[ - AacQueryFieldsValue(None), - ], - color=[ - AacQueryFieldsValue(None), - ], - columns=[ - AacQueryFieldsValue(None), - ], - config=JsonNode(), - description="description_example", - id="sales-by-region", - is_hidden=True, - location=[ - AacQueryFieldsValue(None), - ], - metrics=[ - AacQueryFieldsValue(None), - ], - primary_measures=[ - AacQueryFieldsValue(None), - ], - query=AacQuery( - fields={ - "key": AacQueryFieldsValue(None), - }, - filter_by={ - "key": AacQueryFilter( - additional_properties={ - "key": JsonNode(), - }, - attribute="attribute_example", - bottom=1, - condition="condition_example", - _from=AacDashboardFilterFrom(None), - granularity="granularity_example", - state=AacFilterState( - exclude=[ - "exclude_example", - ], - include=[ - "include_example", - ], - ), - to=AacDashboardFilterFrom(None), - top=1, - type="date_filter", - using="using_example", - value=3.14, - ), - }, - sort_by=[ - JsonNode(), - ], - ), - rows=[ - AacQueryFieldsValue(None), - ], - secondary_measures=[ - AacQueryFieldsValue(None), - ], - segment_by=[ - AacQueryFieldsValue(None), - ], - show_in_ai_results=True, - size=[ - AacQueryFieldsValue(None), - ], - stack=[ - AacQueryFieldsValue(None), - ], - tags=[ - "tags_example", - ], - title="Sales by Region", - trend=[ - AacQueryFieldsValue(None), - ], - type="bar_chart", - view_by=[ - AacQueryFieldsValue(None), - ], - ), + AacVisualization(None), ], ) # AacAnalyticsModel | diff --git a/gooddata-api-client/docs/AacContainerWidget.md b/gooddata-api-client/docs/AacContainerWidget.md new file mode 100644 index 000000000..0e1dcd201 --- /dev/null +++ b/gooddata-api-client/docs/AacContainerWidget.md @@ -0,0 +1,32 @@ +# AacContainerWidget + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**sections** | [**[AacSection]**](AacSection.md) | Nested sections for layout widgets. | +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**columns** | **int** | Widget width in grid columns (GAAC). | [optional] +**container** | **str** | Container widget identifier. | [optional] +**content** | **str** | Rich text content. | [optional] +**date** | **str** | Date dataset for filtering. | [optional] +**description** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] +**drill_down** | [**JsonNode**](JsonNode.md) | | [optional] +**enable_section_headers** | **bool** | Whether section headers are enabled for container widgets. | [optional] +**ignore_dashboard_filters** | **[str]** | Deprecated. Use ignoredFilters instead. | [optional] +**ignored_filters** | **[str]** | A list of dashboard filters to be ignored for this widget (GAAC). | [optional] +**interactions** | [**[JsonNode]**](JsonNode.md) | Widget interactions (GAAC). | [optional] +**layout_direction** | **str** | Layout direction for container widgets. | [optional] +**metric** | **str** | Inline metric reference. | [optional] +**rows** | **int** | Widget height in grid rows (GAAC). | [optional] +**size** | [**AacWidgetSize**](AacWidgetSize.md) | | [optional] +**title** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] +**type** | **str** | Widget type. | [optional] +**visualization** | **str** | Visualization ID reference. | [optional] +**visualizations** | [**[AacWidget]**](AacWidget.md) | Visualization switcher items. | [optional] +**zoom_data** | **bool** | Enable zooming to the data for certain visualization types (GAAC). | [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/AacDashboard.md b/gooddata-api-client/docs/AacDashboard.md index d4cd37611..a60e9e0d4 100644 --- a/gooddata-api-client/docs/AacDashboard.md +++ b/gooddata-api-client/docs/AacDashboard.md @@ -5,22 +5,6 @@ AAC dashboard definition. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**id** | **str** | Unique identifier of the dashboard. | -**type** | **str** | Dashboard type discriminator. | -**active_tab_id** | **str** | Active tab ID for tabbed dashboards. | [optional] -**cross_filtering** | **bool** | Whether cross filtering is enabled. | [optional] -**description** | **str** | Dashboard description. | [optional] -**enable_section_headers** | **bool** | Whether section headers are enabled. | [optional] -**filter_views** | **bool** | Whether filter views are enabled. | [optional] -**filters** | [**{str: (AacDashboardFilter,)}**](AacDashboardFilter.md) | Dashboard filters. | [optional] -**permissions** | [**AacDashboardPermissions**](AacDashboardPermissions.md) | | [optional] -**plugins** | [**[AacDashboardPluginLink]**](AacDashboardPluginLink.md) | Dashboard plugins. | [optional] -**sections** | [**[AacSection]**](AacSection.md) | Dashboard sections (for non-tabbed dashboards). | [optional] -**tabs** | [**[AacTab]**](AacTab.md) | Dashboard tabs (for tabbed dashboards). | [optional] -**tags** | **[str]** | Metadata tags. | [optional] -**title** | **str** | Human readable title. | [optional] -**user_filters_reset** | **bool** | Whether user can reset custom filters. | [optional] -**user_filters_save** | **bool** | Whether user filter settings are stored. | [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/AacDashboardWithTabs.md b/gooddata-api-client/docs/AacDashboardWithTabs.md new file mode 100644 index 000000000..8170fabb0 --- /dev/null +++ b/gooddata-api-client/docs/AacDashboardWithTabs.md @@ -0,0 +1,27 @@ +# AacDashboardWithTabs + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the dashboard. | +**tabs** | [**[AacTab]**](AacTab.md) | Dashboard tabs (for tabbed dashboards). | +**type** | **str** | Dashboard type discriminator. | +**active_tab_id** | **str** | Active tab ID for tabbed dashboards. | [optional] +**cross_filtering** | **bool** | Whether cross filtering is enabled. | [optional] +**description** | **str** | Dashboard description. | [optional] +**enable_section_headers** | **bool** | Whether section headers are enabled. | [optional] +**filter_views** | **bool** | Whether filter views are enabled. | [optional] +**filters** | [**{str: (AacDashboardFilter,)}**](AacDashboardFilter.md) | Dashboard filters. | [optional] +**permissions** | [**AacDashboardPermissions**](AacDashboardPermissions.md) | | [optional] +**plugins** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Dashboard plugins. | [optional] +**sections** | [**[AacSection]**](AacSection.md) | Dashboard sections (for non-tabbed dashboards). | [optional] +**tags** | **[str]** | Metadata tags. | [optional] +**title** | **str** | Human readable title. | [optional] +**user_filters_reset** | **bool** | Whether user can reset custom filters. | [optional] +**user_filters_save** | **bool** | Whether user filter settings are stored. | [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/AacDashboardWithoutTabs.md b/gooddata-api-client/docs/AacDashboardWithoutTabs.md new file mode 100644 index 000000000..a72dcc6f6 --- /dev/null +++ b/gooddata-api-client/docs/AacDashboardWithoutTabs.md @@ -0,0 +1,27 @@ +# AacDashboardWithoutTabs + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the dashboard. | +**type** | **str** | Dashboard type discriminator. | +**active_tab_id** | **str** | Active tab ID for tabbed dashboards. | [optional] +**cross_filtering** | **bool** | Whether cross filtering is enabled. | [optional] +**description** | **str** | Dashboard description. | [optional] +**enable_section_headers** | **bool** | Whether section headers are enabled. | [optional] +**filter_views** | **bool** | Whether filter views are enabled. | [optional] +**filters** | [**{str: (AacDashboardFilter,)}**](AacDashboardFilter.md) | Dashboard filters. | [optional] +**permissions** | [**AacDashboardPermissions**](AacDashboardPermissions.md) | | [optional] +**plugins** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Dashboard plugins. | [optional] +**sections** | [**[AacSection]**](AacSection.md) | Dashboard sections (for non-tabbed dashboards). | [optional] +**tabs** | [**[AacTab]**](AacTab.md) | Dashboard tabs (for tabbed dashboards). | [optional] +**tags** | **[str]** | Metadata tags. | [optional] +**title** | **str** | Human readable title. | [optional] +**user_filters_reset** | **bool** | Whether user can reset custom filters. | [optional] +**user_filters_save** | **bool** | Whether user filter settings are stored. | [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/AacQueryFilter.md b/gooddata-api-client/docs/AacQueryFilter.md index ecff0a36e..9f9166962 100644 --- a/gooddata-api-client/docs/AacQueryFilter.md +++ b/gooddata-api-client/docs/AacQueryFilter.md @@ -1,6 +1,6 @@ # AacQueryFilter -Query filters map: localId -> filter definition. +Layer filters. ## Properties Name | Type | Description | Notes @@ -10,8 +10,11 @@ Name | Type | Description | Notes **attribute** | **str** | Attribute for ranking filter (identifier or localId). | [optional] **bottom** | **int** | Bottom N for ranking filter. | [optional] **condition** | **str** | Condition for metric value filter. | [optional] +**dimensionality** | **[str]** | Dimensionality for metric value filter. | [optional] +**display_as** | **str** | Display as label (attribute filter). | [optional] **_from** | [**AacDashboardFilterFrom**](AacDashboardFilterFrom.md) | | [optional] **granularity** | **str** | Date granularity (date filter). | [optional] +**null_values_as_zero** | **bool** | Null values are treated as zero (metric value filter). | [optional] **state** | [**AacFilterState**](AacFilterState.md) | | [optional] **to** | [**AacDashboardFilterFrom**](AacDashboardFilterFrom.md) | | [optional] **top** | **int** | Top N for ranking filter. | [optional] diff --git a/gooddata-api-client/docs/AacRichTextWidget.md b/gooddata-api-client/docs/AacRichTextWidget.md new file mode 100644 index 000000000..dba4205aa --- /dev/null +++ b/gooddata-api-client/docs/AacRichTextWidget.md @@ -0,0 +1,32 @@ +# AacRichTextWidget + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**content** | **str** | Rich text content. | +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**columns** | **int** | Widget width in grid columns (GAAC). | [optional] +**container** | **str** | Container widget identifier. | [optional] +**date** | **str** | Date dataset for filtering. | [optional] +**description** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] +**drill_down** | [**JsonNode**](JsonNode.md) | | [optional] +**enable_section_headers** | **bool** | Whether section headers are enabled for container widgets. | [optional] +**ignore_dashboard_filters** | **[str]** | Deprecated. Use ignoredFilters instead. | [optional] +**ignored_filters** | **[str]** | A list of dashboard filters to be ignored for this widget (GAAC). | [optional] +**interactions** | [**[JsonNode]**](JsonNode.md) | Widget interactions (GAAC). | [optional] +**layout_direction** | **str** | Layout direction for container widgets. | [optional] +**metric** | **str** | Inline metric reference. | [optional] +**rows** | **int** | Widget height in grid rows (GAAC). | [optional] +**sections** | [**[AacSection]**](AacSection.md) | Nested sections for layout widgets. | [optional] +**size** | [**AacWidgetSize**](AacWidgetSize.md) | | [optional] +**title** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] +**type** | **str** | Widget type. | [optional] +**visualization** | **str** | Visualization ID reference. | [optional] +**visualizations** | [**[AacWidget]**](AacWidget.md) | Visualization switcher items. | [optional] +**zoom_data** | **bool** | Enable zooming to the data for certain visualization types (GAAC). | [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/AacVisualization.md b/gooddata-api-client/docs/AacVisualization.md index 11f0dd320..242d12412 100644 --- a/gooddata-api-client/docs/AacVisualization.md +++ b/gooddata-api-client/docs/AacVisualization.md @@ -5,29 +5,6 @@ AAC visualization definition. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**id** | **str** | Unique identifier of the visualization. | -**query** | [**AacQuery**](AacQuery.md) | | -**type** | **str** | Visualization type. | -**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] -**attribute** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Attribute bucket (for repeater). | [optional] -**color** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Color bucket. | [optional] -**columns** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Columns bucket (for tables). | [optional] -**config** | [**JsonNode**](JsonNode.md) | | [optional] -**description** | **str** | Visualization description. | [optional] -**is_hidden** | **bool** | Deprecated. Use showInAiResults instead. | [optional] -**location** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Location bucket (for geo charts). | [optional] -**metrics** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Metrics bucket. | [optional] -**primary_measures** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Primary measures bucket. | [optional] -**rows** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Rows bucket (for tables). | [optional] -**secondary_measures** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Secondary measures bucket. | [optional] -**segment_by** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Segment by attributes bucket. | [optional] -**show_in_ai_results** | **bool** | Whether to show in AI results. | [optional] -**size** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Size bucket. | [optional] -**stack** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Stack bucket. | [optional] -**tags** | **[str]** | Metadata tags. | [optional] -**title** | **str** | Human readable title. | [optional] -**trend** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Trend bucket. | [optional] -**view_by** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | View by attributes bucket. | [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/AacVisualizationBasicBuckets.md b/gooddata-api-client/docs/AacVisualizationBasicBuckets.md new file mode 100644 index 000000000..9f5b1f311 --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationBasicBuckets.md @@ -0,0 +1,33 @@ +# AacVisualizationBasicBuckets + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the visualization. | +**query** | [**AacQuery**](AacQuery.md) | | +**type** | **str** | | +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**attributes** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Attributes bucket (for scatter). | [optional] +**columns** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Columns bucket (for tables). | [optional] +**config** | [**JsonNode**](JsonNode.md) | | [optional] +**description** | **str** | Visualization description. | [optional] +**_from** | [**JsonNode**](JsonNode.md) | | [optional] +**is_hidden** | **bool** | Deprecated. Use showInAiResults instead. | [optional] +**layers** | [**[AacVisualizationLayer]**](AacVisualizationLayer.md) | Visualization data layers (for geo charts). | [optional] +**metrics** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Metrics bucket. | [optional] +**rows** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Rows bucket (for tables). | [optional] +**segment_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Segment by attributes bucket. | [optional] +**show_in_ai_results** | **bool** | Whether to show in AI results. | [optional] +**size_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Size by metrics bucket. | [optional] +**stack_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Stack by attributes bucket. | [optional] +**tags** | **[str]** | Metadata tags. | [optional] +**title** | **str** | Human readable title. | [optional] +**to** | [**JsonNode**](JsonNode.md) | | [optional] +**trend_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Trend by attributes bucket. | [optional] +**view_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | View by attributes bucket. | [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/AacVisualizationBubbleBuckets.md b/gooddata-api-client/docs/AacVisualizationBubbleBuckets.md new file mode 100644 index 000000000..ebb13bde2 --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationBubbleBuckets.md @@ -0,0 +1,33 @@ +# AacVisualizationBubbleBuckets + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the visualization. | +**query** | [**AacQuery**](AacQuery.md) | | +**type** | **str** | | defaults to "bubble_chart" +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**attributes** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Attributes bucket (for scatter). | [optional] +**columns** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Columns bucket (for tables). | [optional] +**config** | [**JsonNode**](JsonNode.md) | | [optional] +**description** | **str** | Visualization description. | [optional] +**_from** | [**JsonNode**](JsonNode.md) | | [optional] +**is_hidden** | **bool** | Deprecated. Use showInAiResults instead. | [optional] +**layers** | [**[AacVisualizationLayer]**](AacVisualizationLayer.md) | Visualization data layers (for geo charts). | [optional] +**metrics** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Metrics bucket. | [optional] +**rows** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Rows bucket (for tables). | [optional] +**segment_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Segment by attributes bucket. | [optional] +**show_in_ai_results** | **bool** | Whether to show in AI results. | [optional] +**size_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Size by metrics bucket. | [optional] +**stack_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Stack by attributes bucket. | [optional] +**tags** | **[str]** | Metadata tags. | [optional] +**title** | **str** | Human readable title. | [optional] +**to** | [**JsonNode**](JsonNode.md) | | [optional] +**trend_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Trend by attributes bucket. | [optional] +**view_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | View by attributes bucket. | [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/AacVisualizationDependencyBuckets.md b/gooddata-api-client/docs/AacVisualizationDependencyBuckets.md new file mode 100644 index 000000000..5439274d4 --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationDependencyBuckets.md @@ -0,0 +1,33 @@ +# AacVisualizationDependencyBuckets + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the visualization. | +**query** | [**AacQuery**](AacQuery.md) | | +**type** | **str** | | +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**attributes** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Attributes bucket (for scatter). | [optional] +**columns** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Columns bucket (for tables). | [optional] +**config** | [**JsonNode**](JsonNode.md) | | [optional] +**description** | **str** | Visualization description. | [optional] +**_from** | [**JsonNode**](JsonNode.md) | | [optional] +**is_hidden** | **bool** | Deprecated. Use showInAiResults instead. | [optional] +**layers** | [**[AacVisualizationLayer]**](AacVisualizationLayer.md) | Visualization data layers (for geo charts). | [optional] +**metrics** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Metrics bucket. | [optional] +**rows** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Rows bucket (for tables). | [optional] +**segment_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Segment by attributes bucket. | [optional] +**show_in_ai_results** | **bool** | Whether to show in AI results. | [optional] +**size_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Size by metrics bucket. | [optional] +**stack_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Stack by attributes bucket. | [optional] +**tags** | **[str]** | Metadata tags. | [optional] +**title** | **str** | Human readable title. | [optional] +**to** | [**JsonNode**](JsonNode.md) | | [optional] +**trend_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Trend by attributes bucket. | [optional] +**view_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | View by attributes bucket. | [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/AacVisualizationGeoBuckets.md b/gooddata-api-client/docs/AacVisualizationGeoBuckets.md new file mode 100644 index 000000000..781f7ec71 --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationGeoBuckets.md @@ -0,0 +1,33 @@ +# AacVisualizationGeoBuckets + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the visualization. | +**query** | [**AacQuery**](AacQuery.md) | | +**type** | **str** | | +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**attributes** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Attributes bucket (for scatter). | [optional] +**columns** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Columns bucket (for tables). | [optional] +**config** | [**JsonNode**](JsonNode.md) | | [optional] +**description** | **str** | Visualization description. | [optional] +**_from** | [**JsonNode**](JsonNode.md) | | [optional] +**is_hidden** | **bool** | Deprecated. Use showInAiResults instead. | [optional] +**layers** | [**[AacVisualizationLayer]**](AacVisualizationLayer.md) | Visualization data layers (for geo charts). | [optional] +**metrics** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Metrics bucket. | [optional] +**rows** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Rows bucket (for tables). | [optional] +**segment_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Segment by attributes bucket. | [optional] +**show_in_ai_results** | **bool** | Whether to show in AI results. | [optional] +**size_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Size by metrics bucket. | [optional] +**stack_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Stack by attributes bucket. | [optional] +**tags** | **[str]** | Metadata tags. | [optional] +**title** | **str** | Human readable title. | [optional] +**to** | [**JsonNode**](JsonNode.md) | | [optional] +**trend_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Trend by attributes bucket. | [optional] +**view_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | View by attributes bucket. | [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/AacVisualizationLayer.md b/gooddata-api-client/docs/AacVisualizationLayer.md new file mode 100644 index 000000000..e0ef4053f --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationLayer.md @@ -0,0 +1,22 @@ +# AacVisualizationLayer + +Visualization data layers (for geo charts). + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the layer. | +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**config** | [**JsonNode**](JsonNode.md) | | [optional] +**filters** | [**{str: (AacQueryFilter,)}**](AacQueryFilter.md) | Layer filters. | [optional] +**metrics** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Layer metrics. | [optional] +**segment_by** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Layer segment by. | [optional] +**sorts** | [**[JsonNode]**](JsonNode.md) | Layer sorting definitions. | [optional] +**title** | **str** | Layer title. | [optional] +**type** | **str** | Layer type. | [optional] +**view_by** | [**[AacQueryFieldsValue]**](AacQueryFieldsValue.md) | Layer view by. | [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/AacVisualizationScatterBuckets.md b/gooddata-api-client/docs/AacVisualizationScatterBuckets.md new file mode 100644 index 000000000..1ff49d8e5 --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationScatterBuckets.md @@ -0,0 +1,33 @@ +# AacVisualizationScatterBuckets + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the visualization. | +**query** | [**AacQuery**](AacQuery.md) | | +**type** | **str** | | defaults to "scatter_chart" +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**attributes** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Attributes bucket (for scatter). | [optional] +**columns** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Columns bucket (for tables). | [optional] +**config** | [**JsonNode**](JsonNode.md) | | [optional] +**description** | **str** | Visualization description. | [optional] +**_from** | [**JsonNode**](JsonNode.md) | | [optional] +**is_hidden** | **bool** | Deprecated. Use showInAiResults instead. | [optional] +**layers** | [**[AacVisualizationLayer]**](AacVisualizationLayer.md) | Visualization data layers (for geo charts). | [optional] +**metrics** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Metrics bucket. | [optional] +**rows** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Rows bucket (for tables). | [optional] +**segment_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Segment by attributes bucket. | [optional] +**show_in_ai_results** | **bool** | Whether to show in AI results. | [optional] +**size_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Size by metrics bucket. | [optional] +**stack_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Stack by attributes bucket. | [optional] +**tags** | **[str]** | Metadata tags. | [optional] +**title** | **str** | Human readable title. | [optional] +**to** | [**JsonNode**](JsonNode.md) | | [optional] +**trend_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Trend by attributes bucket. | [optional] +**view_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | View by attributes bucket. | [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/AacVisualizationStackedBuckets.md b/gooddata-api-client/docs/AacVisualizationStackedBuckets.md new file mode 100644 index 000000000..c2d925129 --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationStackedBuckets.md @@ -0,0 +1,33 @@ +# AacVisualizationStackedBuckets + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the visualization. | +**query** | [**AacQuery**](AacQuery.md) | | +**type** | **str** | | +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**attributes** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Attributes bucket (for scatter). | [optional] +**columns** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Columns bucket (for tables). | [optional] +**config** | [**JsonNode**](JsonNode.md) | | [optional] +**description** | **str** | Visualization description. | [optional] +**_from** | [**JsonNode**](JsonNode.md) | | [optional] +**is_hidden** | **bool** | Deprecated. Use showInAiResults instead. | [optional] +**layers** | [**[AacVisualizationLayer]**](AacVisualizationLayer.md) | Visualization data layers (for geo charts). | [optional] +**metrics** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Metrics bucket. | [optional] +**rows** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Rows bucket (for tables). | [optional] +**segment_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Segment by attributes bucket. | [optional] +**show_in_ai_results** | **bool** | Whether to show in AI results. | [optional] +**size_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Size by metrics bucket. | [optional] +**stack_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Stack by attributes bucket. | [optional] +**tags** | **[str]** | Metadata tags. | [optional] +**title** | **str** | Human readable title. | [optional] +**to** | [**JsonNode**](JsonNode.md) | | [optional] +**trend_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Trend by attributes bucket. | [optional] +**view_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | View by attributes bucket. | [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/AacVisualizationSwitcherWidget.md b/gooddata-api-client/docs/AacVisualizationSwitcherWidget.md new file mode 100644 index 000000000..a93aec17e --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationSwitcherWidget.md @@ -0,0 +1,32 @@ +# AacVisualizationSwitcherWidget + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**visualizations** | [**[AacVisualizationWidget]**](AacVisualizationWidget.md) | | +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**columns** | **int** | Widget width in grid columns (GAAC). | [optional] +**container** | **str** | Container widget identifier. | [optional] +**content** | **str** | Rich text content. | [optional] +**date** | **str** | Date dataset for filtering. | [optional] +**description** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] +**drill_down** | [**JsonNode**](JsonNode.md) | | [optional] +**enable_section_headers** | **bool** | Whether section headers are enabled for container widgets. | [optional] +**ignore_dashboard_filters** | **[str]** | Deprecated. Use ignoredFilters instead. | [optional] +**ignored_filters** | **[str]** | A list of dashboard filters to be ignored for this widget (GAAC). | [optional] +**interactions** | [**[JsonNode]**](JsonNode.md) | Widget interactions (GAAC). | [optional] +**layout_direction** | **str** | Layout direction for container widgets. | [optional] +**metric** | **str** | Inline metric reference. | [optional] +**rows** | **int** | Widget height in grid rows (GAAC). | [optional] +**sections** | [**[AacSection]**](AacSection.md) | Nested sections for layout widgets. | [optional] +**size** | [**AacWidgetSize**](AacWidgetSize.md) | | [optional] +**title** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] +**type** | **str** | Widget type. | [optional] +**visualization** | **str** | Visualization ID reference. | [optional] +**zoom_data** | **bool** | Enable zooming to the data for certain visualization types (GAAC). | [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/AacVisualizationTableBuckets.md b/gooddata-api-client/docs/AacVisualizationTableBuckets.md new file mode 100644 index 000000000..d25d635c6 --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationTableBuckets.md @@ -0,0 +1,33 @@ +# AacVisualizationTableBuckets + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the visualization. | +**query** | [**AacQuery**](AacQuery.md) | | +**type** | **str** | | +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**attributes** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Attributes bucket (for scatter). | [optional] +**columns** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Columns bucket (for tables). | [optional] +**config** | [**JsonNode**](JsonNode.md) | | [optional] +**description** | **str** | Visualization description. | [optional] +**_from** | [**JsonNode**](JsonNode.md) | | [optional] +**is_hidden** | **bool** | Deprecated. Use showInAiResults instead. | [optional] +**layers** | [**[AacVisualizationLayer]**](AacVisualizationLayer.md) | Visualization data layers (for geo charts). | [optional] +**metrics** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Metrics bucket. | [optional] +**rows** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Rows bucket (for tables). | [optional] +**segment_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Segment by attributes bucket. | [optional] +**show_in_ai_results** | **bool** | Whether to show in AI results. | [optional] +**size_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Size by metrics bucket. | [optional] +**stack_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Stack by attributes bucket. | [optional] +**tags** | **[str]** | Metadata tags. | [optional] +**title** | **str** | Human readable title. | [optional] +**to** | [**JsonNode**](JsonNode.md) | | [optional] +**trend_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Trend by attributes bucket. | [optional] +**view_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | View by attributes bucket. | [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/AacVisualizationTrendBuckets.md b/gooddata-api-client/docs/AacVisualizationTrendBuckets.md new file mode 100644 index 000000000..36798cf95 --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationTrendBuckets.md @@ -0,0 +1,33 @@ +# AacVisualizationTrendBuckets + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique identifier of the visualization. | +**query** | [**AacQuery**](AacQuery.md) | | +**type** | **str** | | defaults to "line_chart" +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**attributes** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Attributes bucket (for scatter). | [optional] +**columns** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Columns bucket (for tables). | [optional] +**config** | [**JsonNode**](JsonNode.md) | | [optional] +**description** | **str** | Visualization description. | [optional] +**_from** | [**JsonNode**](JsonNode.md) | | [optional] +**is_hidden** | **bool** | Deprecated. Use showInAiResults instead. | [optional] +**layers** | [**[AacVisualizationLayer]**](AacVisualizationLayer.md) | Visualization data layers (for geo charts). | [optional] +**metrics** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Metrics bucket. | [optional] +**rows** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Rows bucket (for tables). | [optional] +**segment_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Segment by attributes bucket. | [optional] +**show_in_ai_results** | **bool** | Whether to show in AI results. | [optional] +**size_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Size by metrics bucket. | [optional] +**stack_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Stack by attributes bucket. | [optional] +**tags** | **[str]** | Metadata tags. | [optional] +**title** | **str** | Human readable title. | [optional] +**to** | [**JsonNode**](JsonNode.md) | | [optional] +**trend_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | Trend by attributes bucket. | [optional] +**view_by** | **[bool, date, datetime, dict, float, int, list, str, none_type]** | View by attributes bucket. | [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/AacVisualizationWidget.md b/gooddata-api-client/docs/AacVisualizationWidget.md new file mode 100644 index 000000000..fc3815767 --- /dev/null +++ b/gooddata-api-client/docs/AacVisualizationWidget.md @@ -0,0 +1,32 @@ +# AacVisualizationWidget + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**visualization** | **str** | Visualization ID reference. | +**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] +**columns** | **int** | Widget width in grid columns (GAAC). | [optional] +**container** | **str** | Container widget identifier. | [optional] +**content** | **str** | Rich text content. | [optional] +**date** | **str** | Date dataset for filtering. | [optional] +**description** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] +**drill_down** | [**JsonNode**](JsonNode.md) | | [optional] +**enable_section_headers** | **bool** | Whether section headers are enabled for container widgets. | [optional] +**ignore_dashboard_filters** | **[str]** | Deprecated. Use ignoredFilters instead. | [optional] +**ignored_filters** | **[str]** | A list of dashboard filters to be ignored for this widget (GAAC). | [optional] +**interactions** | [**[JsonNode]**](JsonNode.md) | Widget interactions (GAAC). | [optional] +**layout_direction** | **str** | Layout direction for container widgets. | [optional] +**metric** | **str** | Inline metric reference. | [optional] +**rows** | **int** | Widget height in grid rows (GAAC). | [optional] +**sections** | [**[AacSection]**](AacSection.md) | Nested sections for layout widgets. | [optional] +**size** | [**AacWidgetSize**](AacWidgetSize.md) | | [optional] +**title** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] +**type** | **str** | Widget type. | [optional] +**visualizations** | [**[AacWidget]**](AacWidget.md) | Visualization switcher items. | [optional] +**zoom_data** | **bool** | Enable zooming to the data for certain visualization types (GAAC). | [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/AacWidget.md b/gooddata-api-client/docs/AacWidget.md index 52e3082ca..57f92d791 100644 --- a/gooddata-api-client/docs/AacWidget.md +++ b/gooddata-api-client/docs/AacWidget.md @@ -5,23 +5,6 @@ Widgets in the section. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**additional_properties** | [**{str: (JsonNode,)}**](JsonNode.md) | | [optional] -**columns** | **int** | Widget width in grid columns (GAAC). | [optional] -**content** | **str** | Rich text content. | [optional] -**date** | **str** | Date dataset for filtering. | [optional] -**description** | [**AacWidgetDescription**](AacWidgetDescription.md) | | [optional] -**drill_down** | [**JsonNode**](JsonNode.md) | | [optional] -**ignore_dashboard_filters** | **[str]** | Deprecated. Use ignoredFilters instead. | [optional] -**ignored_filters** | **[str]** | A list of dashboard filters to be ignored for this widget (GAAC). | [optional] -**interactions** | [**[JsonNode]**](JsonNode.md) | Widget interactions (GAAC). | [optional] -**metric** | **str** | Inline metric reference. | [optional] -**rows** | **int** | Widget height in grid rows (GAAC). | [optional] -**sections** | [**[AacSection]**](AacSection.md) | Nested sections for layout widgets. | [optional] -**size** | [**AacWidgetSize**](AacWidgetSize.md) | | [optional] -**title** | [**AacWidgetDescription**](AacWidgetDescription.md) | | [optional] -**type** | **str** | Widget type. | [optional] -**visualization** | **str** | Visualization ID reference. | [optional] -**zoom_data** | **bool** | Enable zooming to the data for certain visualization types (GAAC). | [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/AacWidgetDescription.md b/gooddata-api-client/docs/AacWidgetDescription.md deleted file mode 100644 index 1e5b884de..000000000 --- a/gooddata-api-client/docs/AacWidgetDescription.md +++ /dev/null @@ -1,11 +0,0 @@ -# AacWidgetDescription - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**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/ActionsApi.md b/gooddata-api-client/docs/ActionsApi.md index 209679617..a997b85e1 100644 --- a/gooddata-api-client/docs/ActionsApi.md +++ b/gooddata-api-client/docs/ActionsApi.md @@ -469,7 +469,13 @@ with gooddata_api_client.ApiClient() as api_client: workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier search_request = SearchRequest( deep_search=False, + exclude_tags=[ + "exclude_tags_example", + ], include_hidden=False, + include_tags=[ + "include_tags_example", + ], limit=10, object_types=[ "attribute", diff --git a/gooddata-api-client/docs/SearchRequest.md b/gooddata-api-client/docs/SearchRequest.md index 09b33379c..3153b1c1b 100644 --- a/gooddata-api-client/docs/SearchRequest.md +++ b/gooddata-api-client/docs/SearchRequest.md @@ -6,7 +6,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **question** | **str** | Keyword/sentence is input for search. | **deep_search** | **bool** | Turn on deep search. If true, content of complex objects will be searched as well, e.g. metrics in visualizations. | [optional] if omitted the server will use the default value of False +**exclude_tags** | **[str]** | Exclude objects that contain any of the specified tags. This parameter only affects the search results. Objects with excluded tags are completely hidden from the results. | [optional] **include_hidden** | **bool** | If true, includes hidden objects in search results. If false (default), excludes objects where isHidden=true. | [optional] if omitted the server will use the default value of False +**include_tags** | **[str]** | Include only objects that contain at least one of the specified tags (OR logic). This parameter only affects the search results. If an object has multiple tags, it will be included as long as it matches at least one tag from this parameter. | [optional] **limit** | **int** | Maximum number of results to return. There is a hard limit and the actual number of returned results may be lower than what is requested. | [optional] if omitted the server will use the default value of 10 **object_types** | **[str]** | List of object types to search for. | [optional] **relevant_score_threshold** | **float** | Score, above which we return found objects. Below this score objects are not relevant. | [optional] if omitted the server will use the default value of 0.3 diff --git a/gooddata-api-client/docs/SmartFunctionsApi.md b/gooddata-api-client/docs/SmartFunctionsApi.md index 8071d0f4b..ca4c5bfb4 100644 --- a/gooddata-api-client/docs/SmartFunctionsApi.md +++ b/gooddata-api-client/docs/SmartFunctionsApi.md @@ -384,7 +384,13 @@ with gooddata_api_client.ApiClient() as api_client: workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier search_request = SearchRequest( deep_search=False, + exclude_tags=[ + "exclude_tags_example", + ], include_hidden=False, + include_tags=[ + "include_tags_example", + ], limit=10, object_types=[ "attribute", diff --git a/gooddata-api-client/gooddata_api_client/model/aac_container_widget.py b/gooddata-api-client/gooddata_api_client/model/aac_container_widget.py new file mode 100644 index 000000000..ed7491ff6 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_container_widget.py @@ -0,0 +1,362 @@ +""" + 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.aac_section import AacSection + from gooddata_api_client.model.aac_widget import AacWidget + from gooddata_api_client.model.aac_widget_size import AacWidgetSize + from gooddata_api_client.model.json_node import JsonNode + globals()['AacSection'] = AacSection + globals()['AacWidget'] = AacWidget + globals()['AacWidgetSize'] = AacWidgetSize + globals()['JsonNode'] = JsonNode + + +class AacContainerWidget(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 { + 'sections': ([AacSection],), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'columns': (int,), # noqa: E501 + 'container': (str,), # noqa: E501 + 'content': (str,), # noqa: E501 + 'date': (str,), # noqa: E501 + 'description': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 + 'drill_down': (JsonNode,), # noqa: E501 + 'enable_section_headers': (bool,), # noqa: E501 + 'ignore_dashboard_filters': ([str],), # noqa: E501 + 'ignored_filters': ([str],), # noqa: E501 + 'interactions': ([JsonNode],), # noqa: E501 + 'layout_direction': (str,), # noqa: E501 + 'metric': (str,), # noqa: E501 + 'rows': (int,), # noqa: E501 + 'size': (AacWidgetSize,), # noqa: E501 + 'title': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'visualization': (str,), # noqa: E501 + 'visualizations': ([AacWidget],), # noqa: E501 + 'zoom_data': (bool,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'sections': 'sections', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'container': 'container', # noqa: E501 + 'content': 'content', # noqa: E501 + 'date': 'date', # noqa: E501 + 'description': 'description', # noqa: E501 + 'drill_down': 'drill_down', # noqa: E501 + 'enable_section_headers': 'enable_section_headers', # noqa: E501 + 'ignore_dashboard_filters': 'ignore_dashboard_filters', # noqa: E501 + 'ignored_filters': 'ignored_filters', # noqa: E501 + 'interactions': 'interactions', # noqa: E501 + 'layout_direction': 'layout_direction', # noqa: E501 + 'metric': 'metric', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'size': 'size', # noqa: E501 + 'title': 'title', # noqa: E501 + 'type': 'type', # noqa: E501 + 'visualization': 'visualization', # noqa: E501 + 'visualizations': 'visualizations', # noqa: E501 + 'zoom_data': 'zoom_data', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, sections, *args, **kwargs): # noqa: E501 + """AacContainerWidget - a model defined in OpenAPI + + Args: + sections ([AacSection]): Nested sections for layout widgets. + + 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + columns (int): Widget width in grid columns (GAAC).. [optional] # noqa: E501 + container (str): Container widget identifier.. [optional] # noqa: E501 + content (str): Rich text content.. [optional] # noqa: E501 + date (str): Date dataset for filtering.. [optional] # noqa: E501 + description (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + drill_down (JsonNode): [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled for container widgets.. [optional] # noqa: E501 + ignore_dashboard_filters ([str]): Deprecated. Use ignoredFilters instead.. [optional] # noqa: E501 + ignored_filters ([str]): A list of dashboard filters to be ignored for this widget (GAAC).. [optional] # noqa: E501 + interactions ([JsonNode]): Widget interactions (GAAC).. [optional] # noqa: E501 + layout_direction (str): Layout direction for container widgets.. [optional] # noqa: E501 + metric (str): Inline metric reference.. [optional] # noqa: E501 + rows (int): Widget height in grid rows (GAAC).. [optional] # noqa: E501 + size (AacWidgetSize): [optional] # noqa: E501 + title (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + type (str): Widget type.. [optional] # noqa: E501 + visualization (str): Visualization ID reference.. [optional] # noqa: E501 + visualizations ([AacWidget]): Visualization switcher items.. [optional] # noqa: E501 + zoom_data (bool): Enable zooming to the data for certain visualization types (GAAC).. [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.sections = sections + 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, sections, *args, **kwargs): # noqa: E501 + """AacContainerWidget - a model defined in OpenAPI + + Args: + sections ([AacSection]): Nested sections for layout widgets. + + 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + columns (int): Widget width in grid columns (GAAC).. [optional] # noqa: E501 + container (str): Container widget identifier.. [optional] # noqa: E501 + content (str): Rich text content.. [optional] # noqa: E501 + date (str): Date dataset for filtering.. [optional] # noqa: E501 + description (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + drill_down (JsonNode): [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled for container widgets.. [optional] # noqa: E501 + ignore_dashboard_filters ([str]): Deprecated. Use ignoredFilters instead.. [optional] # noqa: E501 + ignored_filters ([str]): A list of dashboard filters to be ignored for this widget (GAAC).. [optional] # noqa: E501 + interactions ([JsonNode]): Widget interactions (GAAC).. [optional] # noqa: E501 + layout_direction (str): Layout direction for container widgets.. [optional] # noqa: E501 + metric (str): Inline metric reference.. [optional] # noqa: E501 + rows (int): Widget height in grid rows (GAAC).. [optional] # noqa: E501 + size (AacWidgetSize): [optional] # noqa: E501 + title (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + type (str): Widget type.. [optional] # noqa: E501 + visualization (str): Visualization ID reference.. [optional] # noqa: E501 + visualizations ([AacWidget]): Visualization switcher items.. [optional] # noqa: E501 + zoom_data (bool): Enable zooming to the data for certain visualization types (GAAC).. [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.sections = sections + 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/aac_dashboard.py b/gooddata-api-client/gooddata_api_client/model/aac_dashboard.py index 3d0d1f252..14c87a096 100644 --- a/gooddata-api-client/gooddata_api_client/model/aac_dashboard.py +++ b/gooddata-api-client/gooddata_api_client/model/aac_dashboard.py @@ -31,19 +31,13 @@ def lazy_import(): - from gooddata_api_client.model.aac_dashboard_filter import AacDashboardFilter - from gooddata_api_client.model.aac_dashboard_permissions import AacDashboardPermissions - from gooddata_api_client.model.aac_dashboard_plugin_link import AacDashboardPluginLink - from gooddata_api_client.model.aac_section import AacSection - from gooddata_api_client.model.aac_tab import AacTab - globals()['AacDashboardFilter'] = AacDashboardFilter - globals()['AacDashboardPermissions'] = AacDashboardPermissions - globals()['AacDashboardPluginLink'] = AacDashboardPluginLink - globals()['AacSection'] = AacSection - globals()['AacTab'] = AacTab - - -class AacDashboard(ModelNormal): + from gooddata_api_client.model.aac_dashboard_with_tabs import AacDashboardWithTabs + from gooddata_api_client.model.aac_dashboard_without_tabs import AacDashboardWithoutTabs + globals()['AacDashboardWithTabs'] = AacDashboardWithTabs + globals()['AacDashboardWithoutTabs'] = AacDashboardWithoutTabs + + +class AacDashboard(ModelComposed): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -71,8 +65,6 @@ class AacDashboard(ModelNormal): } validations = { - ('tags',): { - }, } @cached_property @@ -98,22 +90,6 @@ def openapi_types(): """ lazy_import() return { - 'id': (str,), # noqa: E501 - 'type': (str,), # noqa: E501 - 'active_tab_id': (str,), # noqa: E501 - 'cross_filtering': (bool,), # noqa: E501 - 'description': (str,), # noqa: E501 - 'enable_section_headers': (bool,), # noqa: E501 - 'filter_views': (bool,), # noqa: E501 - 'filters': ({str: (AacDashboardFilter,)},), # noqa: E501 - 'permissions': (AacDashboardPermissions,), # noqa: E501 - 'plugins': ([AacDashboardPluginLink],), # noqa: E501 - 'sections': ([AacSection],), # noqa: E501 - 'tabs': ([AacTab],), # noqa: E501 - 'tags': ([str],), # noqa: E501 - 'title': (str,), # noqa: E501 - 'user_filters_reset': (bool,), # noqa: E501 - 'user_filters_save': (bool,), # noqa: E501 } @cached_property @@ -122,38 +98,16 @@ def discriminator(): attribute_map = { - 'id': 'id', # noqa: E501 - 'type': 'type', # noqa: E501 - 'active_tab_id': 'active_tab_id', # noqa: E501 - 'cross_filtering': 'cross_filtering', # noqa: E501 - 'description': 'description', # noqa: E501 - 'enable_section_headers': 'enable_section_headers', # noqa: E501 - 'filter_views': 'filter_views', # noqa: E501 - 'filters': 'filters', # noqa: E501 - 'permissions': 'permissions', # noqa: E501 - 'plugins': 'plugins', # noqa: E501 - 'sections': 'sections', # noqa: E501 - 'tabs': 'tabs', # noqa: E501 - 'tags': 'tags', # noqa: E501 - 'title': 'title', # noqa: E501 - 'user_filters_reset': 'user_filters_reset', # noqa: E501 - 'user_filters_save': 'user_filters_save', # noqa: E501 } read_only_vars = { } - _composed_schemas = {} - @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 """AacDashboard - a model defined in OpenAPI - Args: - id (str): Unique identifier of the dashboard. - type (str): Dashboard type discriminator. - Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -185,24 +139,10 @@ def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - active_tab_id (str): Active tab ID for tabbed dashboards.. [optional] # noqa: E501 - cross_filtering (bool): Whether cross filtering is enabled.. [optional] # noqa: E501 - description (str): Dashboard description.. [optional] # noqa: E501 - enable_section_headers (bool): Whether section headers are enabled.. [optional] # noqa: E501 - filter_views (bool): Whether filter views are enabled.. [optional] # noqa: E501 - filters ({str: (AacDashboardFilter,)}): Dashboard filters.. [optional] # noqa: E501 - permissions (AacDashboardPermissions): [optional] # noqa: E501 - plugins ([AacDashboardPluginLink]): Dashboard plugins.. [optional] # noqa: E501 - sections ([AacSection]): Dashboard sections (for non-tabbed dashboards).. [optional] # noqa: E501 - tabs ([AacTab]): Dashboard tabs (for tabbed dashboards).. [optional] # noqa: E501 - tags ([str]): Metadata tags.. [optional] # noqa: E501 - title (str): Human readable title.. [optional] # noqa: E501 - user_filters_reset (bool): Whether user can reset custom filters.. [optional] # noqa: E501 - user_filters_save (bool): Whether user filter settings are stored.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) - _spec_property_naming = kwargs.pop('_spec_property_naming', 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', ()) @@ -230,16 +170,29 @@ def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.id = id - self.type = type + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + 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 not in self.attribute_map and \ + if var_name in discarded_args and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self.additional_properties_type is None: + self._additional_properties_model_instances: # discard variable. continue setattr(self, var_name, var_value) + return self required_properties = set([ @@ -249,16 +202,15 @@ def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 '_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, id, type, *args, **kwargs): # noqa: E501 + def __init__(self, *args, **kwargs): # noqa: E501 """AacDashboard - a model defined in OpenAPI - Args: - id (str): Unique identifier of the dashboard. - type (str): Dashboard type discriminator. - Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -290,20 +242,6 @@ def __init__(self, id, type, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - active_tab_id (str): Active tab ID for tabbed dashboards.. [optional] # noqa: E501 - cross_filtering (bool): Whether cross filtering is enabled.. [optional] # noqa: E501 - description (str): Dashboard description.. [optional] # noqa: E501 - enable_section_headers (bool): Whether section headers are enabled.. [optional] # noqa: E501 - filter_views (bool): Whether filter views are enabled.. [optional] # noqa: E501 - filters ({str: (AacDashboardFilter,)}): Dashboard filters.. [optional] # noqa: E501 - permissions (AacDashboardPermissions): [optional] # noqa: E501 - plugins ([AacDashboardPluginLink]): Dashboard plugins.. [optional] # noqa: E501 - sections ([AacSection]): Dashboard sections (for non-tabbed dashboards).. [optional] # noqa: E501 - tabs ([AacTab]): Dashboard tabs (for tabbed dashboards).. [optional] # noqa: E501 - tags ([str]): Metadata tags.. [optional] # noqa: E501 - title (str): Human readable title.. [optional] # noqa: E501 - user_filters_reset (bool): Whether user can reset custom filters.. [optional] # noqa: E501 - user_filters_save (bool): Whether user filter settings are stored.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -333,16 +271,49 @@ def __init__(self, id, type, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.id = id - self.type = type + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + 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 not in self.attribute_map and \ + if var_name in discarded_args and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self.additional_properties_type is None: + 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': [ + ], + 'oneOf': [ + AacDashboardWithTabs, + AacDashboardWithoutTabs, + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/aac_dashboard_with_tabs.py b/gooddata-api-client/gooddata_api_client/model/aac_dashboard_with_tabs.py new file mode 100644 index 000000000..d5666c030 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_dashboard_with_tabs.py @@ -0,0 +1,350 @@ +""" + 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.aac_dashboard_filter import AacDashboardFilter + from gooddata_api_client.model.aac_dashboard_permissions import AacDashboardPermissions + from gooddata_api_client.model.aac_dashboard_plugin_link import AacDashboardPluginLink + from gooddata_api_client.model.aac_section import AacSection + from gooddata_api_client.model.aac_tab import AacTab + globals()['AacDashboardFilter'] = AacDashboardFilter + globals()['AacDashboardPermissions'] = AacDashboardPermissions + globals()['AacDashboardPluginLink'] = AacDashboardPluginLink + globals()['AacSection'] = AacSection + globals()['AacTab'] = AacTab + + +class AacDashboardWithTabs(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 = { + ('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 { + 'id': (str,), # noqa: E501 + 'tabs': ([AacTab],), # noqa: E501 + 'type': (str,), # noqa: E501 + 'active_tab_id': (str,), # noqa: E501 + 'cross_filtering': (bool,), # noqa: E501 + 'description': (str,), # noqa: E501 + 'enable_section_headers': (bool,), # noqa: E501 + 'filter_views': (bool,), # noqa: E501 + 'filters': ({str: (AacDashboardFilter,)},), # noqa: E501 + 'permissions': (AacDashboardPermissions,), # noqa: E501 + 'plugins': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'sections': ([AacSection],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'user_filters_reset': (bool,), # noqa: E501 + 'user_filters_save': (bool,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'tabs': 'tabs', # noqa: E501 + 'type': 'type', # noqa: E501 + 'active_tab_id': 'active_tab_id', # noqa: E501 + 'cross_filtering': 'cross_filtering', # noqa: E501 + 'description': 'description', # noqa: E501 + 'enable_section_headers': 'enable_section_headers', # noqa: E501 + 'filter_views': 'filter_views', # noqa: E501 + 'filters': 'filters', # noqa: E501 + 'permissions': 'permissions', # noqa: E501 + 'plugins': 'plugins', # noqa: E501 + 'sections': 'sections', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'user_filters_reset': 'user_filters_reset', # noqa: E501 + 'user_filters_save': 'user_filters_save', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, tabs, type, *args, **kwargs): # noqa: E501 + """AacDashboardWithTabs - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the dashboard. + tabs ([AacTab]): Dashboard tabs (for tabbed dashboards). + type (str): Dashboard type discriminator. + + 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,) + active_tab_id (str): Active tab ID for tabbed dashboards.. [optional] # noqa: E501 + cross_filtering (bool): Whether cross filtering is enabled.. [optional] # noqa: E501 + description (str): Dashboard description.. [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled.. [optional] # noqa: E501 + filter_views (bool): Whether filter views are enabled.. [optional] # noqa: E501 + filters ({str: (AacDashboardFilter,)}): Dashboard filters.. [optional] # noqa: E501 + permissions (AacDashboardPermissions): [optional] # noqa: E501 + plugins ([bool, date, datetime, dict, float, int, list, str, none_type]): Dashboard plugins.. [optional] # noqa: E501 + sections ([AacSection]): Dashboard sections (for non-tabbed dashboards).. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + user_filters_reset (bool): Whether user can reset custom filters.. [optional] # noqa: E501 + user_filters_save (bool): Whether user filter settings are stored.. [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.id = id + self.tabs = tabs + 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, tabs, type, *args, **kwargs): # noqa: E501 + """AacDashboardWithTabs - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the dashboard. + tabs ([AacTab]): Dashboard tabs (for tabbed dashboards). + type (str): Dashboard type discriminator. + + 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,) + active_tab_id (str): Active tab ID for tabbed dashboards.. [optional] # noqa: E501 + cross_filtering (bool): Whether cross filtering is enabled.. [optional] # noqa: E501 + description (str): Dashboard description.. [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled.. [optional] # noqa: E501 + filter_views (bool): Whether filter views are enabled.. [optional] # noqa: E501 + filters ({str: (AacDashboardFilter,)}): Dashboard filters.. [optional] # noqa: E501 + permissions (AacDashboardPermissions): [optional] # noqa: E501 + plugins ([bool, date, datetime, dict, float, int, list, str, none_type]): Dashboard plugins.. [optional] # noqa: E501 + sections ([AacSection]): Dashboard sections (for non-tabbed dashboards).. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + user_filters_reset (bool): Whether user can reset custom filters.. [optional] # noqa: E501 + user_filters_save (bool): Whether user filter settings are stored.. [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.id = id + self.tabs = tabs + 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/aac_dashboard_without_tabs.py b/gooddata-api-client/gooddata_api_client/model/aac_dashboard_without_tabs.py new file mode 100644 index 000000000..6c0556f01 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_dashboard_without_tabs.py @@ -0,0 +1,348 @@ +""" + 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.aac_dashboard_filter import AacDashboardFilter + from gooddata_api_client.model.aac_dashboard_permissions import AacDashboardPermissions + from gooddata_api_client.model.aac_dashboard_plugin_link import AacDashboardPluginLink + from gooddata_api_client.model.aac_section import AacSection + from gooddata_api_client.model.aac_tab import AacTab + globals()['AacDashboardFilter'] = AacDashboardFilter + globals()['AacDashboardPermissions'] = AacDashboardPermissions + globals()['AacDashboardPluginLink'] = AacDashboardPluginLink + globals()['AacSection'] = AacSection + globals()['AacTab'] = AacTab + + +class AacDashboardWithoutTabs(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 = { + ('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 { + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'active_tab_id': (str,), # noqa: E501 + 'cross_filtering': (bool,), # noqa: E501 + 'description': (str,), # noqa: E501 + 'enable_section_headers': (bool,), # noqa: E501 + 'filter_views': (bool,), # noqa: E501 + 'filters': ({str: (AacDashboardFilter,)},), # noqa: E501 + 'permissions': (AacDashboardPermissions,), # noqa: E501 + 'plugins': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'sections': ([AacSection],), # noqa: E501 + 'tabs': ([AacTab],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'user_filters_reset': (bool,), # noqa: E501 + 'user_filters_save': (bool,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + 'active_tab_id': 'active_tab_id', # noqa: E501 + 'cross_filtering': 'cross_filtering', # noqa: E501 + 'description': 'description', # noqa: E501 + 'enable_section_headers': 'enable_section_headers', # noqa: E501 + 'filter_views': 'filter_views', # noqa: E501 + 'filters': 'filters', # noqa: E501 + 'permissions': 'permissions', # noqa: E501 + 'plugins': 'plugins', # noqa: E501 + 'sections': 'sections', # noqa: E501 + 'tabs': 'tabs', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'user_filters_reset': 'user_filters_reset', # noqa: E501 + 'user_filters_save': 'user_filters_save', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 + """AacDashboardWithoutTabs - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the dashboard. + type (str): Dashboard type discriminator. + + 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,) + active_tab_id (str): Active tab ID for tabbed dashboards.. [optional] # noqa: E501 + cross_filtering (bool): Whether cross filtering is enabled.. [optional] # noqa: E501 + description (str): Dashboard description.. [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled.. [optional] # noqa: E501 + filter_views (bool): Whether filter views are enabled.. [optional] # noqa: E501 + filters ({str: (AacDashboardFilter,)}): Dashboard filters.. [optional] # noqa: E501 + permissions (AacDashboardPermissions): [optional] # noqa: E501 + plugins ([bool, date, datetime, dict, float, int, list, str, none_type]): Dashboard plugins.. [optional] # noqa: E501 + sections ([AacSection]): Dashboard sections (for non-tabbed dashboards).. [optional] # noqa: E501 + tabs ([AacTab]): Dashboard tabs (for tabbed dashboards).. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + user_filters_reset (bool): Whether user can reset custom filters.. [optional] # noqa: E501 + user_filters_save (bool): Whether user filter settings are stored.. [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.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, type, *args, **kwargs): # noqa: E501 + """AacDashboardWithoutTabs - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the dashboard. + type (str): Dashboard type discriminator. + + 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,) + active_tab_id (str): Active tab ID for tabbed dashboards.. [optional] # noqa: E501 + cross_filtering (bool): Whether cross filtering is enabled.. [optional] # noqa: E501 + description (str): Dashboard description.. [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled.. [optional] # noqa: E501 + filter_views (bool): Whether filter views are enabled.. [optional] # noqa: E501 + filters ({str: (AacDashboardFilter,)}): Dashboard filters.. [optional] # noqa: E501 + permissions (AacDashboardPermissions): [optional] # noqa: E501 + plugins ([bool, date, datetime, dict, float, int, list, str, none_type]): Dashboard plugins.. [optional] # noqa: E501 + sections ([AacSection]): Dashboard sections (for non-tabbed dashboards).. [optional] # noqa: E501 + tabs ([AacTab]): Dashboard tabs (for tabbed dashboards).. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + user_filters_reset (bool): Whether user can reset custom filters.. [optional] # noqa: E501 + user_filters_save (bool): Whether user filter settings are stored.. [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.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/aac_query_filter.py b/gooddata-api-client/gooddata_api_client/model/aac_query_filter.py index 5454d0d69..dcda228ce 100644 --- a/gooddata-api-client/gooddata_api_client/model/aac_query_filter.py +++ b/gooddata-api-client/gooddata_api_client/model/aac_query_filter.py @@ -97,8 +97,11 @@ def openapi_types(): 'attribute': (str,), # noqa: E501 'bottom': (int,), # noqa: E501 'condition': (str,), # noqa: E501 + 'dimensionality': ([str],), # noqa: E501 + 'display_as': (str,), # noqa: E501 '_from': (AacDashboardFilterFrom,), # noqa: E501 'granularity': (str,), # noqa: E501 + 'null_values_as_zero': (bool,), # noqa: E501 'state': (AacFilterState,), # noqa: E501 'to': (AacDashboardFilterFrom,), # noqa: E501 'top': (int,), # noqa: E501 @@ -117,8 +120,11 @@ def discriminator(): 'attribute': 'attribute', # noqa: E501 'bottom': 'bottom', # noqa: E501 'condition': 'condition', # noqa: E501 + 'dimensionality': 'dimensionality', # noqa: E501 + 'display_as': 'display_as', # noqa: E501 '_from': 'from', # noqa: E501 'granularity': 'granularity', # noqa: E501 + 'null_values_as_zero': 'null_values_as_zero', # noqa: E501 'state': 'state', # noqa: E501 'to': 'to', # noqa: E501 'top': 'top', # noqa: E501 @@ -174,8 +180,11 @@ def _from_openapi_data(cls, type, *args, **kwargs): # noqa: E501 attribute (str): Attribute for ranking filter (identifier or localId).. [optional] # noqa: E501 bottom (int): Bottom N for ranking filter.. [optional] # noqa: E501 condition (str): Condition for metric value filter.. [optional] # noqa: E501 + dimensionality ([str]): Dimensionality for metric value filter.. [optional] # noqa: E501 + display_as (str): Display as label (attribute filter).. [optional] # noqa: E501 _from (AacDashboardFilterFrom): [optional] # noqa: E501 granularity (str): Date granularity (date filter).. [optional] # noqa: E501 + null_values_as_zero (bool): Null values are treated as zero (metric value filter).. [optional] # noqa: E501 state (AacFilterState): [optional] # noqa: E501 to (AacDashboardFilterFrom): [optional] # noqa: E501 top (int): Top N for ranking filter.. [optional] # noqa: E501 @@ -274,8 +283,11 @@ def __init__(self, type, *args, **kwargs): # noqa: E501 attribute (str): Attribute for ranking filter (identifier or localId).. [optional] # noqa: E501 bottom (int): Bottom N for ranking filter.. [optional] # noqa: E501 condition (str): Condition for metric value filter.. [optional] # noqa: E501 + dimensionality ([str]): Dimensionality for metric value filter.. [optional] # noqa: E501 + display_as (str): Display as label (attribute filter).. [optional] # noqa: E501 _from (AacDashboardFilterFrom): [optional] # noqa: E501 granularity (str): Date granularity (date filter).. [optional] # noqa: E501 + null_values_as_zero (bool): Null values are treated as zero (metric value filter).. [optional] # noqa: E501 state (AacFilterState): [optional] # noqa: E501 to (AacDashboardFilterFrom): [optional] # noqa: E501 top (int): Top N for ranking filter.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/aac_rich_text_widget.py b/gooddata-api-client/gooddata_api_client/model/aac_rich_text_widget.py new file mode 100644 index 000000000..7bfc42fec --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_rich_text_widget.py @@ -0,0 +1,362 @@ +""" + 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.aac_section import AacSection + from gooddata_api_client.model.aac_widget import AacWidget + from gooddata_api_client.model.aac_widget_size import AacWidgetSize + from gooddata_api_client.model.json_node import JsonNode + globals()['AacSection'] = AacSection + globals()['AacWidget'] = AacWidget + globals()['AacWidgetSize'] = AacWidgetSize + globals()['JsonNode'] = JsonNode + + +class AacRichTextWidget(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 { + 'content': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'columns': (int,), # noqa: E501 + 'container': (str,), # noqa: E501 + 'date': (str,), # noqa: E501 + 'description': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 + 'drill_down': (JsonNode,), # noqa: E501 + 'enable_section_headers': (bool,), # noqa: E501 + 'ignore_dashboard_filters': ([str],), # noqa: E501 + 'ignored_filters': ([str],), # noqa: E501 + 'interactions': ([JsonNode],), # noqa: E501 + 'layout_direction': (str,), # noqa: E501 + 'metric': (str,), # noqa: E501 + 'rows': (int,), # noqa: E501 + 'sections': ([AacSection],), # noqa: E501 + 'size': (AacWidgetSize,), # noqa: E501 + 'title': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'visualization': (str,), # noqa: E501 + 'visualizations': ([AacWidget],), # noqa: E501 + 'zoom_data': (bool,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'content': 'content', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'container': 'container', # noqa: E501 + 'date': 'date', # noqa: E501 + 'description': 'description', # noqa: E501 + 'drill_down': 'drill_down', # noqa: E501 + 'enable_section_headers': 'enable_section_headers', # noqa: E501 + 'ignore_dashboard_filters': 'ignore_dashboard_filters', # noqa: E501 + 'ignored_filters': 'ignored_filters', # noqa: E501 + 'interactions': 'interactions', # noqa: E501 + 'layout_direction': 'layout_direction', # noqa: E501 + 'metric': 'metric', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'sections': 'sections', # noqa: E501 + 'size': 'size', # noqa: E501 + 'title': 'title', # noqa: E501 + 'type': 'type', # noqa: E501 + 'visualization': 'visualization', # noqa: E501 + 'visualizations': 'visualizations', # noqa: E501 + 'zoom_data': 'zoom_data', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, content, *args, **kwargs): # noqa: E501 + """AacRichTextWidget - a model defined in OpenAPI + + Args: + content (str): Rich text content. + + 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + columns (int): Widget width in grid columns (GAAC).. [optional] # noqa: E501 + container (str): Container widget identifier.. [optional] # noqa: E501 + date (str): Date dataset for filtering.. [optional] # noqa: E501 + description (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + drill_down (JsonNode): [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled for container widgets.. [optional] # noqa: E501 + ignore_dashboard_filters ([str]): Deprecated. Use ignoredFilters instead.. [optional] # noqa: E501 + ignored_filters ([str]): A list of dashboard filters to be ignored for this widget (GAAC).. [optional] # noqa: E501 + interactions ([JsonNode]): Widget interactions (GAAC).. [optional] # noqa: E501 + layout_direction (str): Layout direction for container widgets.. [optional] # noqa: E501 + metric (str): Inline metric reference.. [optional] # noqa: E501 + rows (int): Widget height in grid rows (GAAC).. [optional] # noqa: E501 + sections ([AacSection]): Nested sections for layout widgets.. [optional] # noqa: E501 + size (AacWidgetSize): [optional] # noqa: E501 + title (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + type (str): Widget type.. [optional] # noqa: E501 + visualization (str): Visualization ID reference.. [optional] # noqa: E501 + visualizations ([AacWidget]): Visualization switcher items.. [optional] # noqa: E501 + zoom_data (bool): Enable zooming to the data for certain visualization types (GAAC).. [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 + """AacRichTextWidget - a model defined in OpenAPI + + Args: + content (str): Rich text content. + + 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + columns (int): Widget width in grid columns (GAAC).. [optional] # noqa: E501 + container (str): Container widget identifier.. [optional] # noqa: E501 + date (str): Date dataset for filtering.. [optional] # noqa: E501 + description (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + drill_down (JsonNode): [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled for container widgets.. [optional] # noqa: E501 + ignore_dashboard_filters ([str]): Deprecated. Use ignoredFilters instead.. [optional] # noqa: E501 + ignored_filters ([str]): A list of dashboard filters to be ignored for this widget (GAAC).. [optional] # noqa: E501 + interactions ([JsonNode]): Widget interactions (GAAC).. [optional] # noqa: E501 + layout_direction (str): Layout direction for container widgets.. [optional] # noqa: E501 + metric (str): Inline metric reference.. [optional] # noqa: E501 + rows (int): Widget height in grid rows (GAAC).. [optional] # noqa: E501 + sections ([AacSection]): Nested sections for layout widgets.. [optional] # noqa: E501 + size (AacWidgetSize): [optional] # noqa: E501 + title (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + type (str): Widget type.. [optional] # noqa: E501 + visualization (str): Visualization ID reference.. [optional] # noqa: E501 + visualizations ([AacWidget]): Visualization switcher items.. [optional] # noqa: E501 + zoom_data (bool): Enable zooming to the data for certain visualization types (GAAC).. [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/aac_visualization.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization.py index a8a050284..b6e0dc5dc 100644 --- a/gooddata-api-client/gooddata_api_client/model/aac_visualization.py +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization.py @@ -31,15 +31,25 @@ def lazy_import(): - from gooddata_api_client.model.aac_query import AacQuery - from gooddata_api_client.model.aac_query_fields_value import AacQueryFieldsValue - from gooddata_api_client.model.json_node import JsonNode - globals()['AacQuery'] = AacQuery - globals()['AacQueryFieldsValue'] = AacQueryFieldsValue - globals()['JsonNode'] = JsonNode - - -class AacVisualization(ModelNormal): + from gooddata_api_client.model.aac_visualization_basic_buckets import AacVisualizationBasicBuckets + from gooddata_api_client.model.aac_visualization_bubble_buckets import AacVisualizationBubbleBuckets + from gooddata_api_client.model.aac_visualization_dependency_buckets import AacVisualizationDependencyBuckets + from gooddata_api_client.model.aac_visualization_geo_buckets import AacVisualizationGeoBuckets + from gooddata_api_client.model.aac_visualization_scatter_buckets import AacVisualizationScatterBuckets + from gooddata_api_client.model.aac_visualization_stacked_buckets import AacVisualizationStackedBuckets + from gooddata_api_client.model.aac_visualization_table_buckets import AacVisualizationTableBuckets + from gooddata_api_client.model.aac_visualization_trend_buckets import AacVisualizationTrendBuckets + globals()['AacVisualizationBasicBuckets'] = AacVisualizationBasicBuckets + globals()['AacVisualizationBubbleBuckets'] = AacVisualizationBubbleBuckets + globals()['AacVisualizationDependencyBuckets'] = AacVisualizationDependencyBuckets + globals()['AacVisualizationGeoBuckets'] = AacVisualizationGeoBuckets + globals()['AacVisualizationScatterBuckets'] = AacVisualizationScatterBuckets + globals()['AacVisualizationStackedBuckets'] = AacVisualizationStackedBuckets + globals()['AacVisualizationTableBuckets'] = AacVisualizationTableBuckets + globals()['AacVisualizationTrendBuckets'] = AacVisualizationTrendBuckets + + +class AacVisualization(ModelComposed): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -64,35 +74,9 @@ class AacVisualization(ModelNormal): """ allowed_values = { - ('type',): { - 'TABLE': "table", - 'BAR_CHART': "bar_chart", - 'COLUMN_CHART': "column_chart", - 'LINE_CHART': "line_chart", - 'AREA_CHART': "area_chart", - 'SCATTER_CHART': "scatter_chart", - 'BUBBLE_CHART': "bubble_chart", - 'PIE_CHART': "pie_chart", - 'DONUT_CHART': "donut_chart", - 'TREEMAP_CHART': "treemap_chart", - 'PYRAMID_CHART': "pyramid_chart", - 'FUNNEL_CHART': "funnel_chart", - 'HEATMAP_CHART': "heatmap_chart", - 'BULLET_CHART': "bullet_chart", - 'WATERFALL_CHART': "waterfall_chart", - 'DEPENDENCY_WHEEL_CHART': "dependency_wheel_chart", - 'SANKEY_CHART': "sankey_chart", - 'HEADLINE_CHART': "headline_chart", - 'COMBO_CHART': "combo_chart", - 'GEO_CHART': "geo_chart", - 'GEO_AREA_CHART': "geo_area_chart", - 'REPEATER_CHART': "repeater_chart", - }, } validations = { - ('tags',): { - }, } @cached_property @@ -118,77 +102,58 @@ def openapi_types(): """ lazy_import() return { - 'id': (str,), # noqa: E501 - 'query': (AacQuery,), # noqa: E501 - 'type': (str,), # noqa: E501 - 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 - 'attribute': ([AacQueryFieldsValue],), # noqa: E501 - 'color': ([AacQueryFieldsValue],), # noqa: E501 - 'columns': ([AacQueryFieldsValue],), # noqa: E501 - 'config': (JsonNode,), # noqa: E501 - 'description': (str,), # noqa: E501 - 'is_hidden': (bool,), # noqa: E501 - 'location': ([AacQueryFieldsValue],), # noqa: E501 - 'metrics': ([AacQueryFieldsValue],), # noqa: E501 - 'primary_measures': ([AacQueryFieldsValue],), # noqa: E501 - 'rows': ([AacQueryFieldsValue],), # noqa: E501 - 'secondary_measures': ([AacQueryFieldsValue],), # noqa: E501 - 'segment_by': ([AacQueryFieldsValue],), # noqa: E501 - 'show_in_ai_results': (bool,), # noqa: E501 - 'size': ([AacQueryFieldsValue],), # noqa: E501 - 'stack': ([AacQueryFieldsValue],), # noqa: E501 - 'tags': ([str],), # noqa: E501 - 'title': (str,), # noqa: E501 - 'trend': ([AacQueryFieldsValue],), # noqa: E501 - 'view_by': ([AacQueryFieldsValue],), # noqa: E501 } @cached_property def discriminator(): - return None - + lazy_import() + val = { + 'AacVisualizationBasicBuckets': AacVisualizationBasicBuckets, + 'AacVisualizationBubbleBuckets': AacVisualizationBubbleBuckets, + 'AacVisualizationDependencyBuckets': AacVisualizationDependencyBuckets, + 'AacVisualizationGeoBuckets': AacVisualizationGeoBuckets, + 'AacVisualizationScatterBuckets': AacVisualizationScatterBuckets, + 'AacVisualizationStackedBuckets': AacVisualizationStackedBuckets, + 'AacVisualizationTableBuckets': AacVisualizationTableBuckets, + 'AacVisualizationTrendBuckets': AacVisualizationTrendBuckets, + 'area_chart': AacVisualizationStackedBuckets, + 'bar_chart': AacVisualizationStackedBuckets, + 'bubble_chart': AacVisualizationBubbleBuckets, + 'bullet_chart': AacVisualizationBasicBuckets, + 'column_chart': AacVisualizationStackedBuckets, + 'combo_chart': AacVisualizationBasicBuckets, + 'dependency_wheel_chart': AacVisualizationDependencyBuckets, + 'donut_chart': AacVisualizationBasicBuckets, + 'funnel_chart': AacVisualizationBasicBuckets, + 'geo_area_chart': AacVisualizationGeoBuckets, + 'geo_chart': AacVisualizationGeoBuckets, + 'headline_chart': AacVisualizationBasicBuckets, + 'heatmap_chart': AacVisualizationTableBuckets, + 'line_chart': AacVisualizationTrendBuckets, + 'pie_chart': AacVisualizationBasicBuckets, + 'pyramid_chart': AacVisualizationBasicBuckets, + 'repeater_chart': AacVisualizationTableBuckets, + 'sankey_chart': AacVisualizationDependencyBuckets, + 'scatter_chart': AacVisualizationScatterBuckets, + 'table': AacVisualizationTableBuckets, + 'treemap_chart': AacVisualizationBasicBuckets, + 'waterfall_chart': AacVisualizationBasicBuckets, + } + if not val: + return None + return {'type': val} attribute_map = { - 'id': 'id', # noqa: E501 - 'query': 'query', # noqa: E501 - 'type': 'type', # noqa: E501 - 'additional_properties': 'additionalProperties', # noqa: E501 - 'attribute': 'attribute', # noqa: E501 - 'color': 'color', # noqa: E501 - 'columns': 'columns', # noqa: E501 - 'config': 'config', # noqa: E501 - 'description': 'description', # noqa: E501 - 'is_hidden': 'is_hidden', # noqa: E501 - 'location': 'location', # noqa: E501 - 'metrics': 'metrics', # noqa: E501 - 'primary_measures': 'primary_measures', # noqa: E501 - 'rows': 'rows', # noqa: E501 - 'secondary_measures': 'secondary_measures', # noqa: E501 - 'segment_by': 'segment_by', # noqa: E501 - 'show_in_ai_results': 'show_in_ai_results', # noqa: E501 - 'size': 'size', # noqa: E501 - 'stack': 'stack', # noqa: E501 - 'tags': 'tags', # noqa: E501 - 'title': 'title', # noqa: E501 - 'trend': 'trend', # noqa: E501 - 'view_by': 'view_by', # noqa: E501 } read_only_vars = { } - _composed_schemas = {} - @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, id, query, type, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 """AacVisualization - a model defined in OpenAPI - Args: - id (str): Unique identifier of the visualization. - query (AacQuery): - type (str): Visualization type. - Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -220,30 +185,10 @@ def _from_openapi_data(cls, id, query, type, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 - attribute ([AacQueryFieldsValue]): Attribute bucket (for repeater).. [optional] # noqa: E501 - color ([AacQueryFieldsValue]): Color bucket.. [optional] # noqa: E501 - columns ([AacQueryFieldsValue]): Columns bucket (for tables).. [optional] # noqa: E501 - config (JsonNode): [optional] # noqa: E501 - description (str): Visualization description.. [optional] # noqa: E501 - is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 - location ([AacQueryFieldsValue]): Location bucket (for geo charts).. [optional] # noqa: E501 - metrics ([AacQueryFieldsValue]): Metrics bucket.. [optional] # noqa: E501 - primary_measures ([AacQueryFieldsValue]): Primary measures bucket.. [optional] # noqa: E501 - rows ([AacQueryFieldsValue]): Rows bucket (for tables).. [optional] # noqa: E501 - secondary_measures ([AacQueryFieldsValue]): Secondary measures bucket.. [optional] # noqa: E501 - segment_by ([AacQueryFieldsValue]): Segment by attributes bucket.. [optional] # noqa: E501 - show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 - size ([AacQueryFieldsValue]): Size bucket.. [optional] # noqa: E501 - stack ([AacQueryFieldsValue]): Stack bucket.. [optional] # noqa: E501 - tags ([str]): Metadata tags.. [optional] # noqa: E501 - title (str): Human readable title.. [optional] # noqa: E501 - trend ([AacQueryFieldsValue]): Trend bucket.. [optional] # noqa: E501 - view_by ([AacQueryFieldsValue]): View by attributes bucket.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) - _spec_property_naming = kwargs.pop('_spec_property_naming', 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', ()) @@ -271,17 +216,29 @@ def _from_openapi_data(cls, id, query, type, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.id = id - self.query = query - self.type = type + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + 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 not in self.attribute_map and \ + if var_name in discarded_args and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self.additional_properties_type is None: + self._additional_properties_model_instances: # discard variable. continue setattr(self, var_name, var_value) + return self required_properties = set([ @@ -291,17 +248,15 @@ def _from_openapi_data(cls, id, query, type, *args, **kwargs): # noqa: E501 '_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, id, query, type, *args, **kwargs): # noqa: E501 + def __init__(self, *args, **kwargs): # noqa: E501 """AacVisualization - a model defined in OpenAPI - Args: - id (str): Unique identifier of the visualization. - query (AacQuery): - type (str): Visualization type. - Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -333,26 +288,6 @@ def __init__(self, id, query, type, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 - attribute ([AacQueryFieldsValue]): Attribute bucket (for repeater).. [optional] # noqa: E501 - color ([AacQueryFieldsValue]): Color bucket.. [optional] # noqa: E501 - columns ([AacQueryFieldsValue]): Columns bucket (for tables).. [optional] # noqa: E501 - config (JsonNode): [optional] # noqa: E501 - description (str): Visualization description.. [optional] # noqa: E501 - is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 - location ([AacQueryFieldsValue]): Location bucket (for geo charts).. [optional] # noqa: E501 - metrics ([AacQueryFieldsValue]): Metrics bucket.. [optional] # noqa: E501 - primary_measures ([AacQueryFieldsValue]): Primary measures bucket.. [optional] # noqa: E501 - rows ([AacQueryFieldsValue]): Rows bucket (for tables).. [optional] # noqa: E501 - secondary_measures ([AacQueryFieldsValue]): Secondary measures bucket.. [optional] # noqa: E501 - segment_by ([AacQueryFieldsValue]): Segment by attributes bucket.. [optional] # noqa: E501 - show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 - size ([AacQueryFieldsValue]): Size bucket.. [optional] # noqa: E501 - stack ([AacQueryFieldsValue]): Stack bucket.. [optional] # noqa: E501 - tags ([str]): Metadata tags.. [optional] # noqa: E501 - title (str): Human readable title.. [optional] # noqa: E501 - trend ([AacQueryFieldsValue]): Trend bucket.. [optional] # noqa: E501 - view_by ([AacQueryFieldsValue]): View by attributes bucket.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -382,17 +317,55 @@ def __init__(self, id, query, type, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.id = id - self.query = query - self.type = type + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + 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 not in self.attribute_map and \ + if var_name in discarded_args and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self.additional_properties_type is None: + 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': [ + ], + 'oneOf': [ + AacVisualizationBasicBuckets, + AacVisualizationBubbleBuckets, + AacVisualizationDependencyBuckets, + AacVisualizationGeoBuckets, + AacVisualizationScatterBuckets, + AacVisualizationStackedBuckets, + AacVisualizationTableBuckets, + AacVisualizationTrendBuckets, + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/aac_visualization_basic_buckets.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_basic_buckets.py new file mode 100644 index 000000000..4cd9d3081 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_basic_buckets.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.aac_query import AacQuery + from gooddata_api_client.model.aac_visualization_layer import AacVisualizationLayer + from gooddata_api_client.model.json_node import JsonNode + globals()['AacQuery'] = AacQuery + globals()['AacVisualizationLayer'] = AacVisualizationLayer + globals()['JsonNode'] = JsonNode + + +class AacVisualizationBasicBuckets(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',): { + 'BULLET_CHART': "bullet_chart", + 'COMBO_CHART': "combo_chart", + 'DONUT_CHART': "donut_chart", + 'FUNNEL_CHART': "funnel_chart", + 'HEADLINE_CHART': "headline_chart", + 'PIE_CHART': "pie_chart", + 'PYRAMID_CHART': "pyramid_chart", + 'TREEMAP_CHART': "treemap_chart", + 'WATERFALL_CHART': "waterfall_chart", + }, + } + + validations = { + ('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 { + 'id': (str,), # noqa: E501 + 'query': (AacQuery,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'attributes': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'columns': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'config': (JsonNode,), # noqa: E501 + 'description': (str,), # noqa: E501 + '_from': (JsonNode,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'layers': ([AacVisualizationLayer],), # noqa: E501 + 'metrics': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'rows': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'segment_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'show_in_ai_results': (bool,), # noqa: E501 + 'size_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'stack_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'to': (JsonNode,), # noqa: E501 + 'trend_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'view_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'query': 'query', # noqa: E501 + 'type': 'type', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'config': 'config', # noqa: E501 + 'description': 'description', # noqa: E501 + '_from': 'from', # noqa: E501 + 'is_hidden': 'is_hidden', # noqa: E501 + 'layers': 'layers', # noqa: E501 + 'metrics': 'metrics', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'segment_by': 'segment_by', # noqa: E501 + 'show_in_ai_results': 'show_in_ai_results', # noqa: E501 + 'size_by': 'size_by', # noqa: E501 + 'stack_by': 'stack_by', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'to': 'to', # noqa: E501 + 'trend_by': 'trend_by', # noqa: E501 + 'view_by': 'view_by', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, query, type, *args, **kwargs): # noqa: E501 + """AacVisualizationBasicBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [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.id = id + self.query = query + 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, query, type, *args, **kwargs): # noqa: E501 + """AacVisualizationBasicBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [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.id = id + self.query = query + 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/aac_visualization_bubble_buckets.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_bubble_buckets.py new file mode 100644 index 000000000..2a7ad8960 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_bubble_buckets.py @@ -0,0 +1,375 @@ +""" + 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.aac_query import AacQuery + from gooddata_api_client.model.aac_visualization_layer import AacVisualizationLayer + from gooddata_api_client.model.json_node import JsonNode + globals()['AacQuery'] = AacQuery + globals()['AacVisualizationLayer'] = AacVisualizationLayer + globals()['JsonNode'] = JsonNode + + +class AacVisualizationBubbleBuckets(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',): { + 'BUBBLE_CHART': "bubble_chart", + }, + } + + validations = { + ('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 { + 'id': (str,), # noqa: E501 + 'query': (AacQuery,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'attributes': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'columns': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'config': (JsonNode,), # noqa: E501 + 'description': (str,), # noqa: E501 + '_from': (JsonNode,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'layers': ([AacVisualizationLayer],), # noqa: E501 + 'metrics': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'rows': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'segment_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'show_in_ai_results': (bool,), # noqa: E501 + 'size_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'stack_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'to': (JsonNode,), # noqa: E501 + 'trend_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'view_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'query': 'query', # noqa: E501 + 'type': 'type', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'config': 'config', # noqa: E501 + 'description': 'description', # noqa: E501 + '_from': 'from', # noqa: E501 + 'is_hidden': 'is_hidden', # noqa: E501 + 'layers': 'layers', # noqa: E501 + 'metrics': 'metrics', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'segment_by': 'segment_by', # noqa: E501 + 'show_in_ai_results': 'show_in_ai_results', # noqa: E501 + 'size_by': 'size_by', # noqa: E501 + 'stack_by': 'stack_by', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'to': 'to', # noqa: E501 + 'trend_by': 'trend_by', # noqa: E501 + 'view_by': 'view_by', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, query, *args, **kwargs): # noqa: E501 + """AacVisualizationBubbleBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + + Keyword Args: + type (str): defaults to "bubble_chart", must be one of ["bubble_chart", ] # 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [optional] # noqa: E501 + """ + + type = kwargs.get('type', "bubble_chart") + _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.query = query + 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, query, *args, **kwargs): # noqa: E501 + """AacVisualizationBubbleBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + + Keyword Args: + type (str): defaults to "bubble_chart", must be one of ["bubble_chart", ] # 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [optional] # noqa: E501 + """ + + type = kwargs.get('type', "bubble_chart") + _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.query = query + 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/aac_visualization_dependency_buckets.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_dependency_buckets.py new file mode 100644 index 000000000..8b07a4bf5 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_dependency_buckets.py @@ -0,0 +1,374 @@ +""" + 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.aac_query import AacQuery + from gooddata_api_client.model.aac_visualization_layer import AacVisualizationLayer + from gooddata_api_client.model.json_node import JsonNode + globals()['AacQuery'] = AacQuery + globals()['AacVisualizationLayer'] = AacVisualizationLayer + globals()['JsonNode'] = JsonNode + + +class AacVisualizationDependencyBuckets(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',): { + 'DEPENDENCY_WHEEL_CHART': "dependency_wheel_chart", + 'SANKEY_CHART': "sankey_chart", + }, + } + + validations = { + ('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 { + 'id': (str,), # noqa: E501 + 'query': (AacQuery,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'attributes': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'columns': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'config': (JsonNode,), # noqa: E501 + 'description': (str,), # noqa: E501 + '_from': (JsonNode,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'layers': ([AacVisualizationLayer],), # noqa: E501 + 'metrics': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'rows': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'segment_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'show_in_ai_results': (bool,), # noqa: E501 + 'size_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'stack_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'to': (JsonNode,), # noqa: E501 + 'trend_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'view_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'query': 'query', # noqa: E501 + 'type': 'type', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'config': 'config', # noqa: E501 + 'description': 'description', # noqa: E501 + '_from': 'from', # noqa: E501 + 'is_hidden': 'is_hidden', # noqa: E501 + 'layers': 'layers', # noqa: E501 + 'metrics': 'metrics', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'segment_by': 'segment_by', # noqa: E501 + 'show_in_ai_results': 'show_in_ai_results', # noqa: E501 + 'size_by': 'size_by', # noqa: E501 + 'stack_by': 'stack_by', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'to': 'to', # noqa: E501 + 'trend_by': 'trend_by', # noqa: E501 + 'view_by': 'view_by', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, query, type, *args, **kwargs): # noqa: E501 + """AacVisualizationDependencyBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [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.id = id + self.query = query + 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, query, type, *args, **kwargs): # noqa: E501 + """AacVisualizationDependencyBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [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.id = id + self.query = query + 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/aac_visualization_geo_buckets.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_geo_buckets.py new file mode 100644 index 000000000..06c3b057a --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_geo_buckets.py @@ -0,0 +1,374 @@ +""" + 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.aac_query import AacQuery + from gooddata_api_client.model.aac_visualization_layer import AacVisualizationLayer + from gooddata_api_client.model.json_node import JsonNode + globals()['AacQuery'] = AacQuery + globals()['AacVisualizationLayer'] = AacVisualizationLayer + globals()['JsonNode'] = JsonNode + + +class AacVisualizationGeoBuckets(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',): { + 'CHART': "geo_chart", + 'AREA_CHART': "geo_area_chart", + }, + } + + validations = { + ('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 { + 'id': (str,), # noqa: E501 + 'query': (AacQuery,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'attributes': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'columns': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'config': (JsonNode,), # noqa: E501 + 'description': (str,), # noqa: E501 + '_from': (JsonNode,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'layers': ([AacVisualizationLayer],), # noqa: E501 + 'metrics': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'rows': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'segment_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'show_in_ai_results': (bool,), # noqa: E501 + 'size_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'stack_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'to': (JsonNode,), # noqa: E501 + 'trend_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'view_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'query': 'query', # noqa: E501 + 'type': 'type', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'config': 'config', # noqa: E501 + 'description': 'description', # noqa: E501 + '_from': 'from', # noqa: E501 + 'is_hidden': 'is_hidden', # noqa: E501 + 'layers': 'layers', # noqa: E501 + 'metrics': 'metrics', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'segment_by': 'segment_by', # noqa: E501 + 'show_in_ai_results': 'show_in_ai_results', # noqa: E501 + 'size_by': 'size_by', # noqa: E501 + 'stack_by': 'stack_by', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'to': 'to', # noqa: E501 + 'trend_by': 'trend_by', # noqa: E501 + 'view_by': 'view_by', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, query, type, *args, **kwargs): # noqa: E501 + """AacVisualizationGeoBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [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.id = id + self.query = query + 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, query, type, *args, **kwargs): # noqa: E501 + """AacVisualizationGeoBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [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.id = id + self.query = query + 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/aac_widget_description.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_layer.py similarity index 76% rename from gooddata-api-client/gooddata_api_client/model/aac_widget_description.py rename to gooddata-api-client/gooddata_api_client/model/aac_visualization_layer.py index 304d6d0c5..1ca9ff8fd 100644 --- a/gooddata-api-client/gooddata_api_client/model/aac_widget_description.py +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_layer.py @@ -30,8 +30,16 @@ from gooddata_api_client.exceptions import ApiAttributeError +def lazy_import(): + from gooddata_api_client.model.aac_query_fields_value import AacQueryFieldsValue + from gooddata_api_client.model.aac_query_filter import AacQueryFilter + from gooddata_api_client.model.json_node import JsonNode + globals()['AacQueryFieldsValue'] = AacQueryFieldsValue + globals()['AacQueryFilter'] = AacQueryFilter + globals()['JsonNode'] = JsonNode -class AacWidgetDescription(ModelNormal): + +class AacVisualizationLayer(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -67,6 +75,7 @@ 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 @@ -81,7 +90,18 @@ def openapi_types(): openapi_types (dict): The key is attribute name and the value is attribute type. """ + lazy_import() return { + 'id': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'config': (JsonNode,), # noqa: E501 + 'filters': ({str: (AacQueryFilter,)},), # noqa: E501 + 'metrics': ([AacQueryFieldsValue],), # noqa: E501 + 'segment_by': ([AacQueryFieldsValue],), # noqa: E501 + 'sorts': ([JsonNode],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'view_by': ([AacQueryFieldsValue],), # noqa: E501 } @cached_property @@ -90,6 +110,16 @@ def discriminator(): attribute_map = { + 'id': 'id', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'config': 'config', # noqa: E501 + 'filters': 'filters', # noqa: E501 + 'metrics': 'metrics', # noqa: E501 + 'segment_by': 'segment_by', # noqa: E501 + 'sorts': 'sorts', # noqa: E501 + 'title': 'title', # noqa: E501 + 'type': 'type', # noqa: E501 + 'view_by': 'view_by', # noqa: E501 } read_only_vars = { @@ -99,8 +129,11 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 - """AacWidgetDescription - a model defined in OpenAPI + def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + """AacVisualizationLayer - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the layer. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -133,6 +166,15 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + filters ({str: (AacQueryFilter,)}): Layer filters.. [optional] # noqa: E501 + metrics ([AacQueryFieldsValue]): Layer metrics.. [optional] # noqa: E501 + segment_by ([AacQueryFieldsValue]): Layer segment by.. [optional] # noqa: E501 + sorts ([JsonNode]): Layer sorting definitions.. [optional] # noqa: E501 + title (str): Layer title.. [optional] # noqa: E501 + type (str): Layer type.. [optional] # noqa: E501 + view_by ([AacQueryFieldsValue]): Layer view by.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -164,6 +206,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.id = id for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -184,8 +227,11 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, *args, **kwargs): # noqa: E501 - """AacWidgetDescription - a model defined in OpenAPI + def __init__(self, id, *args, **kwargs): # noqa: E501 + """AacVisualizationLayer - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the layer. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -218,6 +264,15 @@ def __init__(self, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + filters ({str: (AacQueryFilter,)}): Layer filters.. [optional] # noqa: E501 + metrics ([AacQueryFieldsValue]): Layer metrics.. [optional] # noqa: E501 + segment_by ([AacQueryFieldsValue]): Layer segment by.. [optional] # noqa: E501 + sorts ([JsonNode]): Layer sorting definitions.. [optional] # noqa: E501 + title (str): Layer title.. [optional] # noqa: E501 + type (str): Layer type.. [optional] # noqa: E501 + view_by ([AacQueryFieldsValue]): Layer view by.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -247,6 +302,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.id = id for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ diff --git a/gooddata-api-client/gooddata_api_client/model/aac_visualization_scatter_buckets.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_scatter_buckets.py new file mode 100644 index 000000000..a9e2b1638 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_scatter_buckets.py @@ -0,0 +1,375 @@ +""" + 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.aac_query import AacQuery + from gooddata_api_client.model.aac_visualization_layer import AacVisualizationLayer + from gooddata_api_client.model.json_node import JsonNode + globals()['AacQuery'] = AacQuery + globals()['AacVisualizationLayer'] = AacVisualizationLayer + globals()['JsonNode'] = JsonNode + + +class AacVisualizationScatterBuckets(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',): { + 'SCATTER_CHART': "scatter_chart", + }, + } + + validations = { + ('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 { + 'id': (str,), # noqa: E501 + 'query': (AacQuery,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'attributes': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'columns': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'config': (JsonNode,), # noqa: E501 + 'description': (str,), # noqa: E501 + '_from': (JsonNode,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'layers': ([AacVisualizationLayer],), # noqa: E501 + 'metrics': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'rows': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'segment_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'show_in_ai_results': (bool,), # noqa: E501 + 'size_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'stack_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'to': (JsonNode,), # noqa: E501 + 'trend_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'view_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'query': 'query', # noqa: E501 + 'type': 'type', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'config': 'config', # noqa: E501 + 'description': 'description', # noqa: E501 + '_from': 'from', # noqa: E501 + 'is_hidden': 'is_hidden', # noqa: E501 + 'layers': 'layers', # noqa: E501 + 'metrics': 'metrics', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'segment_by': 'segment_by', # noqa: E501 + 'show_in_ai_results': 'show_in_ai_results', # noqa: E501 + 'size_by': 'size_by', # noqa: E501 + 'stack_by': 'stack_by', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'to': 'to', # noqa: E501 + 'trend_by': 'trend_by', # noqa: E501 + 'view_by': 'view_by', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, query, *args, **kwargs): # noqa: E501 + """AacVisualizationScatterBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + + Keyword Args: + type (str): defaults to "scatter_chart", must be one of ["scatter_chart", ] # 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [optional] # noqa: E501 + """ + + type = kwargs.get('type', "scatter_chart") + _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.query = query + 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, query, *args, **kwargs): # noqa: E501 + """AacVisualizationScatterBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + + Keyword Args: + type (str): defaults to "scatter_chart", must be one of ["scatter_chart", ] # 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [optional] # noqa: E501 + """ + + type = kwargs.get('type', "scatter_chart") + _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.query = query + 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/aac_visualization_stacked_buckets.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_stacked_buckets.py new file mode 100644 index 000000000..6c83fe041 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_stacked_buckets.py @@ -0,0 +1,375 @@ +""" + 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.aac_query import AacQuery + from gooddata_api_client.model.aac_visualization_layer import AacVisualizationLayer + from gooddata_api_client.model.json_node import JsonNode + globals()['AacQuery'] = AacQuery + globals()['AacVisualizationLayer'] = AacVisualizationLayer + globals()['JsonNode'] = JsonNode + + +class AacVisualizationStackedBuckets(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',): { + 'BAR_CHART': "bar_chart", + 'COLUMN_CHART': "column_chart", + 'AREA_CHART': "area_chart", + }, + } + + validations = { + ('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 { + 'id': (str,), # noqa: E501 + 'query': (AacQuery,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'attributes': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'columns': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'config': (JsonNode,), # noqa: E501 + 'description': (str,), # noqa: E501 + '_from': (JsonNode,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'layers': ([AacVisualizationLayer],), # noqa: E501 + 'metrics': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'rows': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'segment_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'show_in_ai_results': (bool,), # noqa: E501 + 'size_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'stack_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'to': (JsonNode,), # noqa: E501 + 'trend_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'view_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'query': 'query', # noqa: E501 + 'type': 'type', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'config': 'config', # noqa: E501 + 'description': 'description', # noqa: E501 + '_from': 'from', # noqa: E501 + 'is_hidden': 'is_hidden', # noqa: E501 + 'layers': 'layers', # noqa: E501 + 'metrics': 'metrics', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'segment_by': 'segment_by', # noqa: E501 + 'show_in_ai_results': 'show_in_ai_results', # noqa: E501 + 'size_by': 'size_by', # noqa: E501 + 'stack_by': 'stack_by', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'to': 'to', # noqa: E501 + 'trend_by': 'trend_by', # noqa: E501 + 'view_by': 'view_by', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, query, type, *args, **kwargs): # noqa: E501 + """AacVisualizationStackedBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [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.id = id + self.query = query + 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, query, type, *args, **kwargs): # noqa: E501 + """AacVisualizationStackedBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [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.id = id + self.query = query + 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/aac_visualization_switcher_widget.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_switcher_widget.py new file mode 100644 index 000000000..9f1b02987 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_switcher_widget.py @@ -0,0 +1,362 @@ +""" + 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.aac_section import AacSection + from gooddata_api_client.model.aac_visualization_widget import AacVisualizationWidget + from gooddata_api_client.model.aac_widget_size import AacWidgetSize + from gooddata_api_client.model.json_node import JsonNode + globals()['AacSection'] = AacSection + globals()['AacVisualizationWidget'] = AacVisualizationWidget + globals()['AacWidgetSize'] = AacWidgetSize + globals()['JsonNode'] = JsonNode + + +class AacVisualizationSwitcherWidget(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 { + 'visualizations': ([AacVisualizationWidget],), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'columns': (int,), # noqa: E501 + 'container': (str,), # noqa: E501 + 'content': (str,), # noqa: E501 + 'date': (str,), # noqa: E501 + 'description': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 + 'drill_down': (JsonNode,), # noqa: E501 + 'enable_section_headers': (bool,), # noqa: E501 + 'ignore_dashboard_filters': ([str],), # noqa: E501 + 'ignored_filters': ([str],), # noqa: E501 + 'interactions': ([JsonNode],), # noqa: E501 + 'layout_direction': (str,), # noqa: E501 + 'metric': (str,), # noqa: E501 + 'rows': (int,), # noqa: E501 + 'sections': ([AacSection],), # noqa: E501 + 'size': (AacWidgetSize,), # noqa: E501 + 'title': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'visualization': (str,), # noqa: E501 + 'zoom_data': (bool,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'visualizations': 'visualizations', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'container': 'container', # noqa: E501 + 'content': 'content', # noqa: E501 + 'date': 'date', # noqa: E501 + 'description': 'description', # noqa: E501 + 'drill_down': 'drill_down', # noqa: E501 + 'enable_section_headers': 'enable_section_headers', # noqa: E501 + 'ignore_dashboard_filters': 'ignore_dashboard_filters', # noqa: E501 + 'ignored_filters': 'ignored_filters', # noqa: E501 + 'interactions': 'interactions', # noqa: E501 + 'layout_direction': 'layout_direction', # noqa: E501 + 'metric': 'metric', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'sections': 'sections', # noqa: E501 + 'size': 'size', # noqa: E501 + 'title': 'title', # noqa: E501 + 'type': 'type', # noqa: E501 + 'visualization': 'visualization', # noqa: E501 + 'zoom_data': 'zoom_data', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, visualizations, *args, **kwargs): # noqa: E501 + """AacVisualizationSwitcherWidget - a model defined in OpenAPI + + Args: + visualizations ([AacVisualizationWidget]): + + 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + columns (int): Widget width in grid columns (GAAC).. [optional] # noqa: E501 + container (str): Container widget identifier.. [optional] # noqa: E501 + content (str): Rich text content.. [optional] # noqa: E501 + date (str): Date dataset for filtering.. [optional] # noqa: E501 + description (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + drill_down (JsonNode): [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled for container widgets.. [optional] # noqa: E501 + ignore_dashboard_filters ([str]): Deprecated. Use ignoredFilters instead.. [optional] # noqa: E501 + ignored_filters ([str]): A list of dashboard filters to be ignored for this widget (GAAC).. [optional] # noqa: E501 + interactions ([JsonNode]): Widget interactions (GAAC).. [optional] # noqa: E501 + layout_direction (str): Layout direction for container widgets.. [optional] # noqa: E501 + metric (str): Inline metric reference.. [optional] # noqa: E501 + rows (int): Widget height in grid rows (GAAC).. [optional] # noqa: E501 + sections ([AacSection]): Nested sections for layout widgets.. [optional] # noqa: E501 + size (AacWidgetSize): [optional] # noqa: E501 + title (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + type (str): Widget type.. [optional] # noqa: E501 + visualization (str): Visualization ID reference.. [optional] # noqa: E501 + zoom_data (bool): Enable zooming to the data for certain visualization types (GAAC).. [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.visualizations = visualizations + 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, visualizations, *args, **kwargs): # noqa: E501 + """AacVisualizationSwitcherWidget - a model defined in OpenAPI + + Args: + visualizations ([AacVisualizationWidget]): + + 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + columns (int): Widget width in grid columns (GAAC).. [optional] # noqa: E501 + container (str): Container widget identifier.. [optional] # noqa: E501 + content (str): Rich text content.. [optional] # noqa: E501 + date (str): Date dataset for filtering.. [optional] # noqa: E501 + description (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + drill_down (JsonNode): [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled for container widgets.. [optional] # noqa: E501 + ignore_dashboard_filters ([str]): Deprecated. Use ignoredFilters instead.. [optional] # noqa: E501 + ignored_filters ([str]): A list of dashboard filters to be ignored for this widget (GAAC).. [optional] # noqa: E501 + interactions ([JsonNode]): Widget interactions (GAAC).. [optional] # noqa: E501 + layout_direction (str): Layout direction for container widgets.. [optional] # noqa: E501 + metric (str): Inline metric reference.. [optional] # noqa: E501 + rows (int): Widget height in grid rows (GAAC).. [optional] # noqa: E501 + sections ([AacSection]): Nested sections for layout widgets.. [optional] # noqa: E501 + size (AacWidgetSize): [optional] # noqa: E501 + title (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + type (str): Widget type.. [optional] # noqa: E501 + visualization (str): Visualization ID reference.. [optional] # noqa: E501 + zoom_data (bool): Enable zooming to the data for certain visualization types (GAAC).. [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.visualizations = visualizations + 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/aac_visualization_table_buckets.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_table_buckets.py new file mode 100644 index 000000000..181150aa0 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_table_buckets.py @@ -0,0 +1,375 @@ +""" + 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.aac_query import AacQuery + from gooddata_api_client.model.aac_visualization_layer import AacVisualizationLayer + from gooddata_api_client.model.json_node import JsonNode + globals()['AacQuery'] = AacQuery + globals()['AacVisualizationLayer'] = AacVisualizationLayer + globals()['JsonNode'] = JsonNode + + +class AacVisualizationTableBuckets(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',): { + 'TABLE': "table", + 'HEATMAP_CHART': "heatmap_chart", + 'REPEATER_CHART': "repeater_chart", + }, + } + + validations = { + ('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 { + 'id': (str,), # noqa: E501 + 'query': (AacQuery,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'attributes': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'columns': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'config': (JsonNode,), # noqa: E501 + 'description': (str,), # noqa: E501 + '_from': (JsonNode,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'layers': ([AacVisualizationLayer],), # noqa: E501 + 'metrics': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'rows': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'segment_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'show_in_ai_results': (bool,), # noqa: E501 + 'size_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'stack_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'to': (JsonNode,), # noqa: E501 + 'trend_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'view_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'query': 'query', # noqa: E501 + 'type': 'type', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'config': 'config', # noqa: E501 + 'description': 'description', # noqa: E501 + '_from': 'from', # noqa: E501 + 'is_hidden': 'is_hidden', # noqa: E501 + 'layers': 'layers', # noqa: E501 + 'metrics': 'metrics', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'segment_by': 'segment_by', # noqa: E501 + 'show_in_ai_results': 'show_in_ai_results', # noqa: E501 + 'size_by': 'size_by', # noqa: E501 + 'stack_by': 'stack_by', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'to': 'to', # noqa: E501 + 'trend_by': 'trend_by', # noqa: E501 + 'view_by': 'view_by', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, query, type, *args, **kwargs): # noqa: E501 + """AacVisualizationTableBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [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.id = id + self.query = query + 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, query, type, *args, **kwargs): # noqa: E501 + """AacVisualizationTableBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [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.id = id + self.query = query + 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/aac_visualization_trend_buckets.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_trend_buckets.py new file mode 100644 index 000000000..1f0760972 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_trend_buckets.py @@ -0,0 +1,375 @@ +""" + 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.aac_query import AacQuery + from gooddata_api_client.model.aac_visualization_layer import AacVisualizationLayer + from gooddata_api_client.model.json_node import JsonNode + globals()['AacQuery'] = AacQuery + globals()['AacVisualizationLayer'] = AacVisualizationLayer + globals()['JsonNode'] = JsonNode + + +class AacVisualizationTrendBuckets(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',): { + 'LINE_CHART': "line_chart", + }, + } + + validations = { + ('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 { + 'id': (str,), # noqa: E501 + 'query': (AacQuery,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'attributes': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'columns': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'config': (JsonNode,), # noqa: E501 + 'description': (str,), # noqa: E501 + '_from': (JsonNode,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 + 'layers': ([AacVisualizationLayer],), # noqa: E501 + 'metrics': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'rows': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'segment_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'show_in_ai_results': (bool,), # noqa: E501 + 'size_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'stack_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'to': (JsonNode,), # noqa: E501 + 'trend_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + 'view_by': ([bool, date, datetime, dict, float, int, list, str, none_type],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'query': 'query', # noqa: E501 + 'type': 'type', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'config': 'config', # noqa: E501 + 'description': 'description', # noqa: E501 + '_from': 'from', # noqa: E501 + 'is_hidden': 'is_hidden', # noqa: E501 + 'layers': 'layers', # noqa: E501 + 'metrics': 'metrics', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'segment_by': 'segment_by', # noqa: E501 + 'show_in_ai_results': 'show_in_ai_results', # noqa: E501 + 'size_by': 'size_by', # noqa: E501 + 'stack_by': 'stack_by', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'to': 'to', # noqa: E501 + 'trend_by': 'trend_by', # noqa: E501 + 'view_by': 'view_by', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, query, *args, **kwargs): # noqa: E501 + """AacVisualizationTrendBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + + Keyword Args: + type (str): defaults to "line_chart", must be one of ["line_chart", ] # 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [optional] # noqa: E501 + """ + + type = kwargs.get('type', "line_chart") + _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.query = query + 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, query, *args, **kwargs): # noqa: E501 + """AacVisualizationTrendBuckets - a model defined in OpenAPI + + Args: + id (str): Unique identifier of the visualization. + query (AacQuery): + + Keyword Args: + type (str): defaults to "line_chart", must be one of ["line_chart", ] # 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + attributes ([bool, date, datetime, dict, float, int, list, str, none_type]): Attributes bucket (for scatter).. [optional] # noqa: E501 + columns ([bool, date, datetime, dict, float, int, list, str, none_type]): Columns bucket (for tables).. [optional] # noqa: E501 + config (JsonNode): [optional] # noqa: E501 + description (str): Visualization description.. [optional] # noqa: E501 + _from (JsonNode): [optional] # noqa: E501 + is_hidden (bool): Deprecated. Use showInAiResults instead.. [optional] # noqa: E501 + layers ([AacVisualizationLayer]): Visualization data layers (for geo charts).. [optional] # noqa: E501 + metrics ([bool, date, datetime, dict, float, int, list, str, none_type]): Metrics bucket.. [optional] # noqa: E501 + rows ([bool, date, datetime, dict, float, int, list, str, none_type]): Rows bucket (for tables).. [optional] # noqa: E501 + segment_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Segment by attributes bucket.. [optional] # noqa: E501 + show_in_ai_results (bool): Whether to show in AI results.. [optional] # noqa: E501 + size_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Size by metrics bucket.. [optional] # noqa: E501 + stack_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Stack by attributes bucket.. [optional] # noqa: E501 + tags ([str]): Metadata tags.. [optional] # noqa: E501 + title (str): Human readable title.. [optional] # noqa: E501 + to (JsonNode): [optional] # noqa: E501 + trend_by ([bool, date, datetime, dict, float, int, list, str, none_type]): Trend by attributes bucket.. [optional] # noqa: E501 + view_by ([bool, date, datetime, dict, float, int, list, str, none_type]): View by attributes bucket.. [optional] # noqa: E501 + """ + + type = kwargs.get('type', "line_chart") + _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.query = query + 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/aac_visualization_widget.py b/gooddata-api-client/gooddata_api_client/model/aac_visualization_widget.py new file mode 100644 index 000000000..1bb0129d5 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/aac_visualization_widget.py @@ -0,0 +1,362 @@ +""" + 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.aac_section import AacSection + from gooddata_api_client.model.aac_widget import AacWidget + from gooddata_api_client.model.aac_widget_size import AacWidgetSize + from gooddata_api_client.model.json_node import JsonNode + globals()['AacSection'] = AacSection + globals()['AacWidget'] = AacWidget + globals()['AacWidgetSize'] = AacWidgetSize + globals()['JsonNode'] = JsonNode + + +class AacVisualizationWidget(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 { + 'visualization': (str,), # noqa: E501 + 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 + 'columns': (int,), # noqa: E501 + 'container': (str,), # noqa: E501 + 'content': (str,), # noqa: E501 + 'date': (str,), # noqa: E501 + 'description': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 + 'drill_down': (JsonNode,), # noqa: E501 + 'enable_section_headers': (bool,), # noqa: E501 + 'ignore_dashboard_filters': ([str],), # noqa: E501 + 'ignored_filters': ([str],), # noqa: E501 + 'interactions': ([JsonNode],), # noqa: E501 + 'layout_direction': (str,), # noqa: E501 + 'metric': (str,), # noqa: E501 + 'rows': (int,), # noqa: E501 + 'sections': ([AacSection],), # noqa: E501 + 'size': (AacWidgetSize,), # noqa: E501 + 'title': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'visualizations': ([AacWidget],), # noqa: E501 + 'zoom_data': (bool,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'visualization': 'visualization', # noqa: E501 + 'additional_properties': 'additionalProperties', # noqa: E501 + 'columns': 'columns', # noqa: E501 + 'container': 'container', # noqa: E501 + 'content': 'content', # noqa: E501 + 'date': 'date', # noqa: E501 + 'description': 'description', # noqa: E501 + 'drill_down': 'drill_down', # noqa: E501 + 'enable_section_headers': 'enable_section_headers', # noqa: E501 + 'ignore_dashboard_filters': 'ignore_dashboard_filters', # noqa: E501 + 'ignored_filters': 'ignored_filters', # noqa: E501 + 'interactions': 'interactions', # noqa: E501 + 'layout_direction': 'layout_direction', # noqa: E501 + 'metric': 'metric', # noqa: E501 + 'rows': 'rows', # noqa: E501 + 'sections': 'sections', # noqa: E501 + 'size': 'size', # noqa: E501 + 'title': 'title', # noqa: E501 + 'type': 'type', # noqa: E501 + 'visualizations': 'visualizations', # noqa: E501 + 'zoom_data': 'zoom_data', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, visualization, *args, **kwargs): # noqa: E501 + """AacVisualizationWidget - a model defined in OpenAPI + + Args: + visualization (str): Visualization ID reference. + + 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + columns (int): Widget width in grid columns (GAAC).. [optional] # noqa: E501 + container (str): Container widget identifier.. [optional] # noqa: E501 + content (str): Rich text content.. [optional] # noqa: E501 + date (str): Date dataset for filtering.. [optional] # noqa: E501 + description (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + drill_down (JsonNode): [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled for container widgets.. [optional] # noqa: E501 + ignore_dashboard_filters ([str]): Deprecated. Use ignoredFilters instead.. [optional] # noqa: E501 + ignored_filters ([str]): A list of dashboard filters to be ignored for this widget (GAAC).. [optional] # noqa: E501 + interactions ([JsonNode]): Widget interactions (GAAC).. [optional] # noqa: E501 + layout_direction (str): Layout direction for container widgets.. [optional] # noqa: E501 + metric (str): Inline metric reference.. [optional] # noqa: E501 + rows (int): Widget height in grid rows (GAAC).. [optional] # noqa: E501 + sections ([AacSection]): Nested sections for layout widgets.. [optional] # noqa: E501 + size (AacWidgetSize): [optional] # noqa: E501 + title (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + type (str): Widget type.. [optional] # noqa: E501 + visualizations ([AacWidget]): Visualization switcher items.. [optional] # noqa: E501 + zoom_data (bool): Enable zooming to the data for certain visualization types (GAAC).. [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.visualization = visualization + 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, visualization, *args, **kwargs): # noqa: E501 + """AacVisualizationWidget - a model defined in OpenAPI + + Args: + visualization (str): Visualization ID reference. + + 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,) + additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 + columns (int): Widget width in grid columns (GAAC).. [optional] # noqa: E501 + container (str): Container widget identifier.. [optional] # noqa: E501 + content (str): Rich text content.. [optional] # noqa: E501 + date (str): Date dataset for filtering.. [optional] # noqa: E501 + description (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + drill_down (JsonNode): [optional] # noqa: E501 + enable_section_headers (bool): Whether section headers are enabled for container widgets.. [optional] # noqa: E501 + ignore_dashboard_filters ([str]): Deprecated. Use ignoredFilters instead.. [optional] # noqa: E501 + ignored_filters ([str]): A list of dashboard filters to be ignored for this widget (GAAC).. [optional] # noqa: E501 + interactions ([JsonNode]): Widget interactions (GAAC).. [optional] # noqa: E501 + layout_direction (str): Layout direction for container widgets.. [optional] # noqa: E501 + metric (str): Inline metric reference.. [optional] # noqa: E501 + rows (int): Widget height in grid rows (GAAC).. [optional] # noqa: E501 + sections ([AacSection]): Nested sections for layout widgets.. [optional] # noqa: E501 + size (AacWidgetSize): [optional] # noqa: E501 + title (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 + type (str): Widget type.. [optional] # noqa: E501 + visualizations ([AacWidget]): Visualization switcher items.. [optional] # noqa: E501 + zoom_data (bool): Enable zooming to the data for certain visualization types (GAAC).. [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.visualization = visualization + 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/aac_widget.py b/gooddata-api-client/gooddata_api_client/model/aac_widget.py index c1ea0f844..a624977b9 100644 --- a/gooddata-api-client/gooddata_api_client/model/aac_widget.py +++ b/gooddata-api-client/gooddata_api_client/model/aac_widget.py @@ -31,17 +31,17 @@ def lazy_import(): - from gooddata_api_client.model.aac_section import AacSection - from gooddata_api_client.model.aac_widget_description import AacWidgetDescription - from gooddata_api_client.model.aac_widget_size import AacWidgetSize - from gooddata_api_client.model.json_node import JsonNode - globals()['AacSection'] = AacSection - globals()['AacWidgetDescription'] = AacWidgetDescription - globals()['AacWidgetSize'] = AacWidgetSize - globals()['JsonNode'] = JsonNode + from gooddata_api_client.model.aac_container_widget import AacContainerWidget + from gooddata_api_client.model.aac_rich_text_widget import AacRichTextWidget + from gooddata_api_client.model.aac_visualization_switcher_widget import AacVisualizationSwitcherWidget + from gooddata_api_client.model.aac_visualization_widget import AacVisualizationWidget + globals()['AacContainerWidget'] = AacContainerWidget + globals()['AacRichTextWidget'] = AacRichTextWidget + globals()['AacVisualizationSwitcherWidget'] = AacVisualizationSwitcherWidget + globals()['AacVisualizationWidget'] = AacVisualizationWidget -class AacWidget(ModelNormal): +class AacWidget(ModelComposed): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -94,23 +94,6 @@ def openapi_types(): """ lazy_import() return { - 'additional_properties': ({str: (JsonNode,)},), # noqa: E501 - 'columns': (int,), # noqa: E501 - 'content': (str,), # noqa: E501 - 'date': (str,), # noqa: E501 - 'description': (AacWidgetDescription,), # noqa: E501 - 'drill_down': (JsonNode,), # noqa: E501 - 'ignore_dashboard_filters': ([str],), # noqa: E501 - 'ignored_filters': ([str],), # noqa: E501 - 'interactions': ([JsonNode],), # noqa: E501 - 'metric': (str,), # noqa: E501 - 'rows': (int,), # noqa: E501 - 'sections': ([AacSection],), # noqa: E501 - 'size': (AacWidgetSize,), # noqa: E501 - 'title': (AacWidgetDescription,), # noqa: E501 - 'type': (str,), # noqa: E501 - 'visualization': (str,), # noqa: E501 - 'zoom_data': (bool,), # noqa: E501 } @cached_property @@ -119,30 +102,11 @@ def discriminator(): attribute_map = { - 'additional_properties': 'additionalProperties', # noqa: E501 - 'columns': 'columns', # noqa: E501 - 'content': 'content', # noqa: E501 - 'date': 'date', # noqa: E501 - 'description': 'description', # noqa: E501 - 'drill_down': 'drill_down', # noqa: E501 - 'ignore_dashboard_filters': 'ignore_dashboard_filters', # noqa: E501 - 'ignored_filters': 'ignored_filters', # noqa: E501 - 'interactions': 'interactions', # noqa: E501 - 'metric': 'metric', # noqa: E501 - 'rows': 'rows', # noqa: E501 - 'sections': 'sections', # noqa: E501 - 'size': 'size', # noqa: E501 - 'title': 'title', # noqa: E501 - 'type': 'type', # noqa: E501 - 'visualization': 'visualization', # noqa: E501 - 'zoom_data': 'zoom_data', # noqa: E501 } read_only_vars = { } - _composed_schemas = {} - @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 @@ -179,27 +143,10 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 - columns (int): Widget width in grid columns (GAAC).. [optional] # noqa: E501 - content (str): Rich text content.. [optional] # noqa: E501 - date (str): Date dataset for filtering.. [optional] # noqa: E501 - description (AacWidgetDescription): [optional] # noqa: E501 - drill_down (JsonNode): [optional] # noqa: E501 - ignore_dashboard_filters ([str]): Deprecated. Use ignoredFilters instead.. [optional] # noqa: E501 - ignored_filters ([str]): A list of dashboard filters to be ignored for this widget (GAAC).. [optional] # noqa: E501 - interactions ([JsonNode]): Widget interactions (GAAC).. [optional] # noqa: E501 - metric (str): Inline metric reference.. [optional] # noqa: E501 - rows (int): Widget height in grid rows (GAAC).. [optional] # noqa: E501 - sections ([AacSection]): Nested sections for layout widgets.. [optional] # noqa: E501 - size (AacWidgetSize): [optional] # noqa: E501 - title (AacWidgetDescription): [optional] # noqa: E501 - type (str): Widget type.. [optional] # noqa: E501 - visualization (str): Visualization ID reference.. [optional] # noqa: E501 - zoom_data (bool): Enable zooming to the data for certain visualization types (GAAC).. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) - _spec_property_naming = kwargs.pop('_spec_property_naming', 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', ()) @@ -227,14 +174,29 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 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 not in self.attribute_map and \ + if var_name in discarded_args and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self.additional_properties_type is None: + self._additional_properties_model_instances: # discard variable. continue setattr(self, var_name, var_value) + return self required_properties = set([ @@ -244,6 +206,9 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 '_path_to_item', '_configuration', '_visited_composed_classes', + '_composed_instances', + '_var_name_to_model_instances', + '_additional_properties_model_instances', ]) @convert_js_args_to_python_args @@ -281,23 +246,6 @@ def __init__(self, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - additional_properties ({str: (JsonNode,)}): [optional] # noqa: E501 - columns (int): Widget width in grid columns (GAAC).. [optional] # noqa: E501 - content (str): Rich text content.. [optional] # noqa: E501 - date (str): Date dataset for filtering.. [optional] # noqa: E501 - description (AacWidgetDescription): [optional] # noqa: E501 - drill_down (JsonNode): [optional] # noqa: E501 - ignore_dashboard_filters ([str]): Deprecated. Use ignoredFilters instead.. [optional] # noqa: E501 - ignored_filters ([str]): A list of dashboard filters to be ignored for this widget (GAAC).. [optional] # noqa: E501 - interactions ([JsonNode]): Widget interactions (GAAC).. [optional] # noqa: E501 - metric (str): Inline metric reference.. [optional] # noqa: E501 - rows (int): Widget height in grid rows (GAAC).. [optional] # noqa: E501 - sections ([AacSection]): Nested sections for layout widgets.. [optional] # noqa: E501 - size (AacWidgetSize): [optional] # noqa: E501 - title (AacWidgetDescription): [optional] # noqa: E501 - type (str): Widget type.. [optional] # noqa: E501 - visualization (str): Visualization ID reference.. [optional] # noqa: E501 - zoom_data (bool): Enable zooming to the data for certain visualization types (GAAC).. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -327,14 +275,51 @@ def __init__(self, *args, **kwargs): # noqa: E501 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 not in self.attribute_map and \ + if var_name in discarded_args and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self.additional_properties_type is None: + 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': [ + ], + 'oneOf': [ + AacContainerWidget, + AacRichTextWidget, + AacVisualizationSwitcherWidget, + AacVisualizationWidget, + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py b/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py index 0fb34a9fa..279faa7c0 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py @@ -89,6 +89,7 @@ class DeclarativeDataSource(ModelNormal): 'STARROCKS': "STARROCKS", 'ATHENA': "ATHENA", 'MONGODB': "MONGODB", + 'CRATEDB': "CRATEDB", }, ('authentication_type',): { 'None': None, diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py index 0de851700..1bbc17657 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py @@ -83,6 +83,7 @@ class JsonApiDataSourceIdentifierOutAttributes(ModelNormal): 'STARROCKS': "STARROCKS", 'ATHENA': "ATHENA", 'MONGODB': "MONGODB", + 'CRATEDB': "CRATEDB", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py index ba2de119b..173e64043 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py @@ -87,6 +87,7 @@ class JsonApiDataSourceInAttributes(ModelNormal): 'STARROCKS': "STARROCKS", 'ATHENA': "ATHENA", 'MONGODB': "MONGODB", + 'CRATEDB': "CRATEDB", }, ('cache_strategy',): { 'None': None, diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py index bd4e289af..8f53ee998 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py @@ -87,6 +87,7 @@ class JsonApiDataSourceOutAttributes(ModelNormal): 'STARROCKS': "STARROCKS", 'ATHENA': "ATHENA", 'MONGODB': "MONGODB", + 'CRATEDB': "CRATEDB", }, ('authentication_type',): { 'None': None, diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py index f4f5d5e79..d4412d816 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py @@ -92,6 +92,7 @@ class JsonApiDataSourcePatchAttributes(ModelNormal): 'STARROCKS': "STARROCKS", 'ATHENA': "ATHENA", 'MONGODB': "MONGODB", + 'CRATEDB': "CRATEDB", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/search_request.py b/gooddata-api-client/gooddata_api_client/model/search_request.py index 477dc1372..713538593 100644 --- a/gooddata-api-client/gooddata_api_client/model/search_request.py +++ b/gooddata-api-client/gooddata_api_client/model/search_request.py @@ -97,7 +97,9 @@ def openapi_types(): return { 'question': (str,), # noqa: E501 'deep_search': (bool,), # noqa: E501 + 'exclude_tags': ([str],), # noqa: E501 'include_hidden': (bool,), # noqa: E501 + 'include_tags': ([str],), # noqa: E501 'limit': (int,), # noqa: E501 'object_types': ([str],), # noqa: E501 'relevant_score_threshold': (float,), # noqa: E501 @@ -112,7 +114,9 @@ def discriminator(): attribute_map = { 'question': 'question', # noqa: E501 'deep_search': 'deepSearch', # noqa: E501 + 'exclude_tags': 'excludeTags', # noqa: E501 'include_hidden': 'includeHidden', # noqa: E501 + 'include_tags': 'includeTags', # noqa: E501 'limit': 'limit', # noqa: E501 'object_types': 'objectTypes', # noqa: E501 'relevant_score_threshold': 'relevantScoreThreshold', # noqa: E501 @@ -164,7 +168,9 @@ def _from_openapi_data(cls, question, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) deep_search (bool): Turn on deep search. If true, content of complex objects will be searched as well, e.g. metrics in visualizations.. [optional] if omitted the server will use the default value of False # noqa: E501 + exclude_tags ([str]): Exclude objects that contain any of the specified tags. This parameter only affects the search results. Objects with excluded tags are completely hidden from the results.. [optional] # noqa: E501 include_hidden (bool): If true, includes hidden objects in search results. If false (default), excludes objects where isHidden=true.. [optional] if omitted the server will use the default value of False # noqa: E501 + include_tags ([str]): Include only objects that contain at least one of the specified tags (OR logic). This parameter only affects the search results. If an object has multiple tags, it will be included as long as it matches at least one tag from this parameter.. [optional] # noqa: E501 limit (int): Maximum number of results to return. There is a hard limit and the actual number of returned results may be lower than what is requested.. [optional] if omitted the server will use the default value of 10 # noqa: E501 object_types ([str]): List of object types to search for.. [optional] # noqa: E501 relevant_score_threshold (float): Score, above which we return found objects. Below this score objects are not relevant.. [optional] if omitted the server will use the default value of 0.3 # noqa: E501 @@ -259,7 +265,9 @@ def __init__(self, question, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) deep_search (bool): Turn on deep search. If true, content of complex objects will be searched as well, e.g. metrics in visualizations.. [optional] if omitted the server will use the default value of False # noqa: E501 + exclude_tags ([str]): Exclude objects that contain any of the specified tags. This parameter only affects the search results. Objects with excluded tags are completely hidden from the results.. [optional] # noqa: E501 include_hidden (bool): If true, includes hidden objects in search results. If false (default), excludes objects where isHidden=true.. [optional] if omitted the server will use the default value of False # noqa: E501 + include_tags ([str]): Include only objects that contain at least one of the specified tags (OR logic). This parameter only affects the search results. If an object has multiple tags, it will be included as long as it matches at least one tag from this parameter.. [optional] # noqa: E501 limit (int): Maximum number of results to return. There is a hard limit and the actual number of returned results may be lower than what is requested.. [optional] if omitted the server will use the default value of 10 # noqa: E501 object_types ([str]): List of object types to search for.. [optional] # noqa: E501 relevant_score_threshold (float): Score, above which we return found objects. Below this score objects are not relevant.. [optional] if omitted the server will use the default value of 0.3 # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/test_definition_request.py b/gooddata-api-client/gooddata_api_client/model/test_definition_request.py index 405f5e6f7..4e60f79bb 100644 --- a/gooddata-api-client/gooddata_api_client/model/test_definition_request.py +++ b/gooddata-api-client/gooddata_api_client/model/test_definition_request.py @@ -87,6 +87,7 @@ class TestDefinitionRequest(ModelNormal): 'STARROCKS': "STARROCKS", 'ATHENA': "ATHENA", 'MONGODB': "MONGODB", + 'CRATEDB': "CRATEDB", }, } diff --git a/gooddata-api-client/gooddata_api_client/models/__init__.py b/gooddata-api-client/gooddata_api_client/models/__init__.py index 7479cc75e..308f2c79a 100644 --- a/gooddata-api-client/gooddata_api_client/models/__init__.py +++ b/gooddata-api-client/gooddata_api_client/models/__init__.py @@ -13,11 +13,14 @@ from gooddata_api_client.model.afm_filters_inner import AFMFiltersInner from gooddata_api_client.model.aac_analytics_model import AacAnalyticsModel from gooddata_api_client.model.aac_attribute_hierarchy import AacAttributeHierarchy +from gooddata_api_client.model.aac_container_widget import AacContainerWidget from gooddata_api_client.model.aac_dashboard import AacDashboard from gooddata_api_client.model.aac_dashboard_filter import AacDashboardFilter from gooddata_api_client.model.aac_dashboard_filter_from import AacDashboardFilterFrom from gooddata_api_client.model.aac_dashboard_permissions import AacDashboardPermissions from gooddata_api_client.model.aac_dashboard_plugin_link import AacDashboardPluginLink +from gooddata_api_client.model.aac_dashboard_with_tabs import AacDashboardWithTabs +from gooddata_api_client.model.aac_dashboard_without_tabs import AacDashboardWithoutTabs from gooddata_api_client.model.aac_dataset import AacDataset from gooddata_api_client.model.aac_dataset_primary_key import AacDatasetPrimaryKey from gooddata_api_client.model.aac_date_dataset import AacDateDataset @@ -36,11 +39,22 @@ from gooddata_api_client.model.aac_query_filter import AacQueryFilter from gooddata_api_client.model.aac_reference import AacReference from gooddata_api_client.model.aac_reference_source import AacReferenceSource +from gooddata_api_client.model.aac_rich_text_widget import AacRichTextWidget from gooddata_api_client.model.aac_section import AacSection from gooddata_api_client.model.aac_tab import AacTab from gooddata_api_client.model.aac_visualization import AacVisualization +from gooddata_api_client.model.aac_visualization_basic_buckets import AacVisualizationBasicBuckets +from gooddata_api_client.model.aac_visualization_bubble_buckets import AacVisualizationBubbleBuckets +from gooddata_api_client.model.aac_visualization_dependency_buckets import AacVisualizationDependencyBuckets +from gooddata_api_client.model.aac_visualization_geo_buckets import AacVisualizationGeoBuckets +from gooddata_api_client.model.aac_visualization_layer import AacVisualizationLayer +from gooddata_api_client.model.aac_visualization_scatter_buckets import AacVisualizationScatterBuckets +from gooddata_api_client.model.aac_visualization_stacked_buckets import AacVisualizationStackedBuckets +from gooddata_api_client.model.aac_visualization_switcher_widget import AacVisualizationSwitcherWidget +from gooddata_api_client.model.aac_visualization_table_buckets import AacVisualizationTableBuckets +from gooddata_api_client.model.aac_visualization_trend_buckets import AacVisualizationTrendBuckets +from gooddata_api_client.model.aac_visualization_widget import AacVisualizationWidget from gooddata_api_client.model.aac_widget import AacWidget -from gooddata_api_client.model.aac_widget_description import AacWidgetDescription from gooddata_api_client.model.aac_widget_size import AacWidgetSize from gooddata_api_client.model.aac_workspace_data_filter import AacWorkspaceDataFilter from gooddata_api_client.model.absolute_date_filter import AbsoluteDateFilter diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py index 95344c1a8..45ccb6a15 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py @@ -16,6 +16,8 @@ class CatalogDeclarativeColumn(Base): is_primary_key: Optional[bool] = None referenced_table_id: Optional[str] = None referenced_table_column: Optional[str] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeColumn]: diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py index 54f382206..be37191c2 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py @@ -82,6 +82,8 @@ class CatalogDeclarativeAttribute(Base): tags: Optional[list[str]] = None is_hidden: Optional[bool] = None locale: Optional[str] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeAttribute]: @@ -97,6 +99,8 @@ class CatalogDeclarativeFact(Base): description: Optional[str] = None tags: Optional[list[str]] = None is_hidden: Optional[bool] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeFact]: @@ -121,6 +125,8 @@ class CatalogDeclarativeAggregatedFact(Base): source_column_data_type: Optional[str] = None description: Optional[str] = None tags: Optional[list[str]] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeAggregatedFact]: @@ -171,6 +177,8 @@ class CatalogDeclarativeLabel(Base): locale: Optional[str] = None translations: Optional[list[CatalogDeclarativeLabelTranslation]] = None geo_area_config: Optional[CatalogGeoAreaConfig] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeLabel]: @@ -203,6 +211,8 @@ class CatalogDeclarativeReference(Base): source_columns: Optional[list[str]] = None source_column_data_types: Optional[list[str]] = None sources: Optional[list[CatalogDeclarativeReferenceSource]] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeReference]: diff --git a/schemas/gooddata-afm-client.json b/schemas/gooddata-afm-client.json index 569e16d4d..d8b731282 100644 --- a/schemas/gooddata-afm-client.json +++ b/schemas/gooddata-afm-client.json @@ -3894,11 +3894,27 @@ "description": "Turn on deep search. If true, content of complex objects will be searched as well, e.g. metrics in visualizations.", "type": "boolean" }, + "excludeTags": { + "description": "Exclude objects that contain any of the specified tags. This parameter only affects the search results. Objects with excluded tags are completely hidden from the results.", + "items": { + "description": "Tag to exclude.", + "type": "string" + }, + "type": "array" + }, "includeHidden": { "default": false, "description": "If true, includes hidden objects in search results. If false (default), excludes objects where isHidden=true.", "type": "boolean" }, + "includeTags": { + "description": "Include only objects that contain at least one of the specified tags (OR logic). This parameter only affects the search results. If an object has multiple tags, it will be included as long as it matches at least one tag from this parameter.", + "items": { + "description": "Tag to include.", + "type": "string" + }, + "type": "array" + }, "limit": { "default": 10, "description": "Maximum number of results to return. There is a hard limit and the actual number of returned results may be lower than what is requested.", diff --git a/schemas/gooddata-api-client.json b/schemas/gooddata-api-client.json index e5897cfd0..85c724ffc 100644 --- a/schemas/gooddata-api-client.json +++ b/schemas/gooddata-api-client.json @@ -190,99 +190,177 @@ ], "type": "object" }, - "AacDashboard": { - "description": "AAC dashboard definition.", + "AacContainerWidget": { + "allOf": [ + { + "not": { + "required": [ + "visualization" + ] + } + }, + { + "not": { + "required": [ + "content" + ] + } + }, + { + "not": { + "required": [ + "visualizations" + ] + } + } + ], "properties": { - "active_tab_id": { - "description": "Active tab ID for tabbed dashboards.", - "type": "string" + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true }, - "cross_filtering": { - "description": "Whether cross filtering is enabled.", - "type": "boolean" + "columns": { + "description": "Widget width in grid columns (GAAC).", + "format": "int32", + "type": "integer" }, - "description": { - "description": "Dashboard description.", + "container": { + "description": "Container widget identifier.", "type": "string" }, - "enable_section_headers": { - "description": "Whether section headers are enabled.", - "type": "boolean" + "content": { + "description": "Rich text content.", + "type": "string" }, - "filter_views": { - "description": "Whether filter views are enabled.", - "type": "boolean" + "date": { + "description": "Date dataset for filtering.", + "type": "string" }, - "filters": { - "additionalProperties": { - "$ref": "#/components/schemas/AacDashboardFilter" - }, - "description": "Dashboard filters.", - "type": "object" + "description": { + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + }, + { + "enum": [ + "inherit" + ], + "type": "string" + } + ] }, - "id": { - "description": "Unique identifier of the dashboard.", - "example": "sales-overview", - "type": "string" + "drill_down": { + "$ref": "#/components/schemas/JsonNode" }, - "permissions": { - "$ref": "#/components/schemas/AacDashboardPermissions" + "enable_section_headers": { + "description": "Whether section headers are enabled for container widgets.", + "type": "boolean" }, - "plugins": { - "description": "Dashboard plugins.", + "ignore_dashboard_filters": { + "description": "Deprecated. Use ignoredFilters instead.", "items": { - "$ref": "#/components/schemas/AacDashboardPluginLink" + "description": "Deprecated. Use ignoredFilters instead.", + "type": "string" }, "type": "array" }, - "sections": { - "description": "Dashboard sections (for non-tabbed dashboards).", + "ignored_filters": { + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", "items": { - "$ref": "#/components/schemas/AacSection" + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", + "type": "string" }, "type": "array" }, - "tabs": { - "description": "Dashboard tabs (for tabbed dashboards).", + "interactions": { + "description": "Widget interactions (GAAC).", "items": { - "$ref": "#/components/schemas/AacTab" + "$ref": "#/components/schemas/JsonNode" }, "type": "array" }, - "tags": { - "description": "Metadata tags.", + "layout_direction": { + "description": "Layout direction for container widgets.", + "type": "string" + }, + "metric": { + "description": "Inline metric reference.", + "type": "string" + }, + "rows": { + "description": "Widget height in grid rows (GAAC).", + "format": "int32", + "type": "integer" + }, + "sections": { + "description": "Nested sections for layout widgets.", "items": { - "description": "Metadata tags.", - "type": "string" + "$ref": "#/components/schemas/AacSection" }, - "type": "array", - "uniqueItems": true + "type": "array" + }, + "size": { + "$ref": "#/components/schemas/AacWidgetSize" }, "title": { - "description": "Human readable title.", - "example": "Sales Overview", - "type": "string" + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + } + ] }, "type": { - "description": "Dashboard type discriminator.", - "example": "dashboard", + "description": "Widget type.", + "example": "visualization", "type": "string" }, - "user_filters_reset": { - "description": "Whether user can reset custom filters.", - "type": "boolean" + "visualization": { + "description": "Visualization ID reference.", + "type": "string" }, - "user_filters_save": { - "description": "Whether user filter settings are stored.", + "visualizations": { + "description": "Visualization switcher items.", + "items": { + "$ref": "#/components/schemas/AacWidget" + }, + "type": "array" + }, + "zoom_data": { + "description": "Enable zooming to the data for certain visualization types (GAAC).", "type": "boolean" } }, "required": [ - "id", - "type" + "sections" ], "type": "object" }, + "AacDashboard": { + "description": "AAC dashboard definition.", + "oneOf": [ + { + "$ref": "#/components/schemas/AacDashboardWithTabs" + }, + { + "$ref": "#/components/schemas/AacDashboardWithoutTabs" + } + ] + }, "AacDashboardFilter": { "description": "Tab-specific filters.", "properties": { @@ -397,67 +475,79 @@ ], "type": "object" }, - "AacDataset": { - "description": "AAC dataset definition.", + "AacDashboardWithTabs": { + "allOf": [ + { + "not": { + "required": [ + "sections" + ] + } + } + ], "properties": { - "data_source": { - "description": "Data source ID.", - "example": "my-postgres", + "active_tab_id": { + "description": "Active tab ID for tabbed dashboards.", "type": "string" }, + "cross_filtering": { + "description": "Whether cross filtering is enabled.", + "type": "boolean" + }, "description": { - "description": "Dataset description.", + "description": "Dashboard description.", "type": "string" }, - "fields": { + "enable_section_headers": { + "description": "Whether section headers are enabled.", + "type": "boolean" + }, + "filter_views": { + "description": "Whether filter views are enabled.", + "type": "boolean" + }, + "filters": { "additionalProperties": { - "$ref": "#/components/schemas/AacField" + "$ref": "#/components/schemas/AacDashboardFilter" }, - "description": "Dataset fields (attributes, facts, aggregated facts).", + "description": "Dashboard filters.", "type": "object" }, "id": { - "description": "Unique identifier of the dataset.", - "example": "customers", + "description": "Unique identifier of the dashboard.", + "example": "sales-overview", "type": "string" }, - "precedence": { - "description": "Precedence value for aggregate awareness.", - "format": "int32", - "type": "integer" + "permissions": { + "$ref": "#/components/schemas/AacDashboardPermissions" }, - "primary_key": { - "description": "Primary key column(s). Accepts either a single string or an array of strings.", - "oneOf": [ - { - "type": "string" - }, - { - "items": { + "plugins": { + "description": "Dashboard plugins.", + "items": { + "oneOf": [ + { "type": "string" }, - "type": "array" - }, - { - "type": "null" - } - ] + { + "$ref": "#/components/schemas/AacDashboardPluginLink" + } + ] + }, + "type": "array" }, - "references": { - "description": "References to other datasets.", + "sections": { + "description": "Dashboard sections (for non-tabbed dashboards).", "items": { - "$ref": "#/components/schemas/AacReference" + "$ref": "#/components/schemas/AacSection" }, "type": "array" }, - "sql": { - "description": "SQL statement defining this dataset.", - "type": "string" - }, - "table_path": { - "description": "Table path in the data source.", - "example": "public/customers", - "type": "string" + "tabs": { + "description": "Dashboard tabs (for tabbed dashboards).", + "items": { + "$ref": "#/components/schemas/AacTab" + }, + "type": "array" }, "tags": { "description": "Metadata tags.", @@ -470,7 +560,219 @@ }, "title": { "description": "Human readable title.", - "example": "Customers", + "example": "Sales Overview", + "type": "string" + }, + "type": { + "description": "Dashboard type discriminator.", + "example": "dashboard", + "type": "string" + }, + "user_filters_reset": { + "description": "Whether user can reset custom filters.", + "type": "boolean" + }, + "user_filters_save": { + "description": "Whether user filter settings are stored.", + "type": "boolean" + } + }, + "required": [ + "id", + "tabs", + "type" + ], + "type": "object" + }, + "AacDashboardWithoutTabs": { + "allOf": [ + { + "not": { + "required": [ + "tabs" + ] + } + }, + { + "not": { + "required": [ + "active_tab_id" + ] + } + } + ], + "properties": { + "active_tab_id": { + "description": "Active tab ID for tabbed dashboards.", + "type": "string" + }, + "cross_filtering": { + "description": "Whether cross filtering is enabled.", + "type": "boolean" + }, + "description": { + "description": "Dashboard description.", + "type": "string" + }, + "enable_section_headers": { + "description": "Whether section headers are enabled.", + "type": "boolean" + }, + "filter_views": { + "description": "Whether filter views are enabled.", + "type": "boolean" + }, + "filters": { + "additionalProperties": { + "$ref": "#/components/schemas/AacDashboardFilter" + }, + "description": "Dashboard filters.", + "type": "object" + }, + "id": { + "description": "Unique identifier of the dashboard.", + "example": "sales-overview", + "type": "string" + }, + "permissions": { + "$ref": "#/components/schemas/AacDashboardPermissions" + }, + "plugins": { + "description": "Dashboard plugins.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/AacDashboardPluginLink" + } + ] + }, + "type": "array" + }, + "sections": { + "description": "Dashboard sections (for non-tabbed dashboards).", + "items": { + "$ref": "#/components/schemas/AacSection" + }, + "type": "array" + }, + "tabs": { + "description": "Dashboard tabs (for tabbed dashboards).", + "items": { + "$ref": "#/components/schemas/AacTab" + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales Overview", + "type": "string" + }, + "type": { + "description": "Dashboard type discriminator.", + "example": "dashboard", + "type": "string" + }, + "user_filters_reset": { + "description": "Whether user can reset custom filters.", + "type": "boolean" + }, + "user_filters_save": { + "description": "Whether user filter settings are stored.", + "type": "boolean" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "AacDataset": { + "description": "AAC dataset definition.", + "properties": { + "data_source": { + "description": "Data source ID.", + "example": "my-postgres", + "type": "string" + }, + "description": { + "description": "Dataset description.", + "type": "string" + }, + "fields": { + "additionalProperties": { + "$ref": "#/components/schemas/AacField" + }, + "description": "Dataset fields (attributes, facts, aggregated facts).", + "type": "object" + }, + "id": { + "description": "Unique identifier of the dataset.", + "example": "customers", + "type": "string" + }, + "precedence": { + "description": "Precedence value for aggregate awareness.", + "format": "int32", + "type": "integer" + }, + "primary_key": { + "description": "Primary key column(s). Accepts either a single string or an array of strings.", + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "references": { + "description": "References to other datasets.", + "items": { + "$ref": "#/components/schemas/AacReference" + }, + "type": "array" + }, + "sql": { + "description": "SQL statement defining this dataset.", + "type": "string" + }, + "table_path": { + "description": "Table path in the data source.", + "example": "public/customers", + "type": "string" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Customers", "type": "string" }, "type": { @@ -969,7 +1271,7 @@ "type": "object" }, "AacQueryFilter": { - "description": "Query filters map: localId -> filter definition.", + "description": "Layer filters.", "properties": { "additionalProperties": { "additionalProperties": { @@ -991,6 +1293,18 @@ "description": "Condition for metric value filter.", "type": "string" }, + "dimensionality": { + "description": "Dimensionality for metric value filter.", + "items": { + "description": "Dimensionality for metric value filter.", + "type": "string" + }, + "type": "array" + }, + "display_as": { + "description": "Display as label (attribute filter).", + "type": "string" + }, "from": { "oneOf": [ { @@ -1006,6 +1320,10 @@ "description": "Date granularity (date filter).", "type": "string" }, + "null_values_as_zero": { + "description": "Null values are treated as zero (metric value filter).", + "type": "boolean" + }, "state": { "$ref": "#/components/schemas/AacFilterState" }, @@ -1100,23 +1418,183 @@ ], "type": "object" }, - "AacSection": { - "description": "Sections within the tab.", + "AacRichTextWidget": { + "allOf": [ + { + "not": { + "required": [ + "visualization" + ] + } + }, + { + "not": { + "required": [ + "sections" + ] + } + }, + { + "not": { + "required": [ + "visualizations" + ] + } + } + ], "properties": { - "description": { - "description": "Section description.", + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "columns": { + "description": "Widget width in grid columns (GAAC).", + "format": "int32", + "type": "integer" + }, + "container": { + "description": "Container widget identifier.", "type": "string" }, - "header": { - "description": "Whether section header is visible.", - "type": "boolean" + "content": { + "description": "Rich text content.", + "type": "string" }, - "title": { - "description": "Section title.", + "date": { + "description": "Date dataset for filtering.", "type": "string" }, - "widgets": { - "description": "Widgets in the section.", + "description": { + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + }, + { + "enum": [ + "inherit" + ], + "type": "string" + } + ] + }, + "drill_down": { + "$ref": "#/components/schemas/JsonNode" + }, + "enable_section_headers": { + "description": "Whether section headers are enabled for container widgets.", + "type": "boolean" + }, + "ignore_dashboard_filters": { + "description": "Deprecated. Use ignoredFilters instead.", + "items": { + "description": "Deprecated. Use ignoredFilters instead.", + "type": "string" + }, + "type": "array" + }, + "ignored_filters": { + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", + "items": { + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", + "type": "string" + }, + "type": "array" + }, + "interactions": { + "description": "Widget interactions (GAAC).", + "items": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "array" + }, + "layout_direction": { + "description": "Layout direction for container widgets.", + "type": "string" + }, + "metric": { + "description": "Inline metric reference.", + "type": "string" + }, + "rows": { + "description": "Widget height in grid rows (GAAC).", + "format": "int32", + "type": "integer" + }, + "sections": { + "description": "Nested sections for layout widgets.", + "items": { + "$ref": "#/components/schemas/AacSection" + }, + "type": "array" + }, + "size": { + "$ref": "#/components/schemas/AacWidgetSize" + }, + "title": { + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + } + ] + }, + "type": { + "description": "Widget type.", + "example": "visualization", + "type": "string" + }, + "visualization": { + "description": "Visualization ID reference.", + "type": "string" + }, + "visualizations": { + "description": "Visualization switcher items.", + "items": { + "$ref": "#/components/schemas/AacWidget" + }, + "type": "array" + }, + "zoom_data": { + "description": "Enable zooming to the data for certain visualization types (GAAC).", + "type": "boolean" + } + }, + "required": [ + "content" + ], + "type": "object" + }, + "AacSection": { + "description": "Sections within the tab.", + "properties": { + "description": { + "description": "Section description.", + "type": "string" + }, + "header": { + "description": "Whether section header is visible.", + "type": "boolean" + }, + "title": { + "description": "Section title.", + "type": "string" + }, + "widgets": { + "description": "Widgets in the section.", "items": { "$ref": "#/components/schemas/AacWidget" }, @@ -1132,43 +1610,2239 @@ "additionalProperties": { "$ref": "#/components/schemas/AacDashboardFilter" }, - "description": "Tab-specific filters.", - "type": "object" - }, - "id": { - "description": "Unique identifier of the tab.", - "type": "string" + "description": "Tab-specific filters.", + "type": "object" + }, + "id": { + "description": "Unique identifier of the tab.", + "type": "string" + }, + "sections": { + "description": "Sections within the tab.", + "items": { + "$ref": "#/components/schemas/AacSection" + }, + "type": "array" + }, + "title": { + "description": "Display title for the tab.", + "type": "string" + } + }, + "required": [ + "id", + "title" + ], + "type": "object" + }, + "AacVisualization": { + "description": "AAC visualization definition.", + "discriminator": { + "mapping": { + "area_chart": "#/components/schemas/AacVisualizationStackedBuckets", + "bar_chart": "#/components/schemas/AacVisualizationStackedBuckets", + "bubble_chart": "#/components/schemas/AacVisualizationBubbleBuckets", + "bullet_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "column_chart": "#/components/schemas/AacVisualizationStackedBuckets", + "combo_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "dependency_wheel_chart": "#/components/schemas/AacVisualizationDependencyBuckets", + "donut_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "funnel_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "geo_area_chart": "#/components/schemas/AacVisualizationGeoBuckets", + "geo_chart": "#/components/schemas/AacVisualizationGeoBuckets", + "headline_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "heatmap_chart": "#/components/schemas/AacVisualizationTableBuckets", + "line_chart": "#/components/schemas/AacVisualizationTrendBuckets", + "pie_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "pyramid_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "repeater_chart": "#/components/schemas/AacVisualizationTableBuckets", + "sankey_chart": "#/components/schemas/AacVisualizationDependencyBuckets", + "scatter_chart": "#/components/schemas/AacVisualizationScatterBuckets", + "table": "#/components/schemas/AacVisualizationTableBuckets", + "treemap_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "waterfall_chart": "#/components/schemas/AacVisualizationBasicBuckets" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/AacVisualizationTableBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationStackedBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationScatterBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationBubbleBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationTrendBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationGeoBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationBasicBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationDependencyBuckets" + } + ] + }, + "AacVisualizationBasicBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "bullet_chart", + "combo_chart", + "donut_chart", + "funnel_chart", + "headline_chart", + "pie_chart", + "pyramid_chart", + "treemap_chart", + "waterfall_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationBubbleBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "bubble_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationDependencyBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "dependency_wheel_chart", + "sankey_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationGeoBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "geo_chart", + "geo_area_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationLayer": { + "description": "Visualization data layers (for geo charts).", + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "filters": { + "additionalProperties": { + "$ref": "#/components/schemas/AacQueryFilter" + }, + "description": "Layer filters.", + "type": "object" + }, + "id": { + "description": "Unique identifier of the layer.", + "type": "string" + }, + "metrics": { + "description": "Layer metrics.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Layer segment by.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "sorts": { + "description": "Layer sorting definitions.", + "items": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "array" + }, + "title": { + "description": "Layer title.", + "type": "string" + }, + "type": { + "description": "Layer type.", + "example": "pushpin", + "type": "string" + }, + "view_by": { + "description": "Layer view by.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "AacVisualizationScatterBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "scatter_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationStackedBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "bar_chart", + "column_chart", + "area_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationSwitcherWidget": { + "allOf": [ + { + "not": { + "required": [ + "visualization" + ] + } + }, + { + "not": { + "required": [ + "content" + ] + } + }, + { + "not": { + "required": [ + "sections" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "columns": { + "description": "Widget width in grid columns (GAAC).", + "format": "int32", + "type": "integer" + }, + "container": { + "description": "Container widget identifier.", + "type": "string" + }, + "content": { + "description": "Rich text content.", + "type": "string" + }, + "date": { + "description": "Date dataset for filtering.", + "type": "string" + }, + "description": { + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + }, + { + "enum": [ + "inherit" + ], + "type": "string" + } + ] + }, + "drill_down": { + "$ref": "#/components/schemas/JsonNode" + }, + "enable_section_headers": { + "description": "Whether section headers are enabled for container widgets.", + "type": "boolean" + }, + "ignore_dashboard_filters": { + "description": "Deprecated. Use ignoredFilters instead.", + "items": { + "description": "Deprecated. Use ignoredFilters instead.", + "type": "string" + }, + "type": "array" + }, + "ignored_filters": { + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", + "items": { + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", + "type": "string" + }, + "type": "array" + }, + "interactions": { + "description": "Widget interactions (GAAC).", + "items": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "array" + }, + "layout_direction": { + "description": "Layout direction for container widgets.", + "type": "string" + }, + "metric": { + "description": "Inline metric reference.", + "type": "string" + }, + "rows": { + "description": "Widget height in grid rows (GAAC).", + "format": "int32", + "type": "integer" + }, + "sections": { + "description": "Nested sections for layout widgets.", + "items": { + "$ref": "#/components/schemas/AacSection" + }, + "type": "array" + }, + "size": { + "$ref": "#/components/schemas/AacWidgetSize" + }, + "title": { + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + } + ] + }, + "type": { + "description": "Widget type.", + "example": "visualization", + "type": "string" + }, + "visualization": { + "description": "Visualization ID reference.", + "type": "string" + }, + "visualizations": { + "items": { + "$ref": "#/components/schemas/AacVisualizationWidget" + }, + "type": "array" + }, + "zoom_data": { + "description": "Enable zooming to the data for certain visualization types (GAAC).", + "type": "boolean" + } + }, + "required": [ + "visualizations" + ], + "type": "object" + }, + "AacVisualizationTableBuckets": { + "allOf": [ + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" }, - "sections": { - "description": "Sections within the tab.", + "segment_by": { + "description": "Segment by attributes bucket.", "items": { - "$ref": "#/components/schemas/AacSection" + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] }, "type": "array" }, - "title": { - "description": "Display title for the tab.", - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - "AacVisualization": { - "description": "AAC visualization definition.", - "properties": { - "additionalProperties": { - "additionalProperties": { - "$ref": "#/components/schemas/JsonNode" - }, - "type": "object", - "writeOnly": true + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" }, - "attribute": { - "description": "Attribute bucket (for repeater).", + "size_by": { + "description": "Size by metrics bucket.", "items": { "oneOf": [ { @@ -1184,8 +3858,8 @@ }, "type": "array" }, - "color": { - "description": "Color bucket.", + "stack_by": { + "description": "Stack by attributes bucket.", "items": { "oneOf": [ { @@ -1201,8 +3875,25 @@ }, "type": "array" }, - "columns": { - "description": "Columns bucket (for tables).", + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", "items": { "oneOf": [ { @@ -1218,24 +3909,16 @@ }, "type": "array" }, - "config": { - "$ref": "#/components/schemas/JsonNode" - }, - "description": { - "description": "Visualization description.", - "type": "string" - }, - "id": { - "description": "Unique identifier of the visualization.", - "example": "sales-by-region", + "type": { + "enum": [ + "table", + "heatmap_chart", + "repeater_chart" + ], "type": "string" }, - "is_hidden": { - "description": "Deprecated. Use showInAiResults instead.", - "type": "boolean" - }, - "location": { - "description": "Location bucket (for geo charts).", + "view_by": { + "description": "View by attributes bucket.", "items": { "oneOf": [ { @@ -1250,9 +3933,84 @@ ] }, "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationTrendBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } }, - "metrics": { - "description": "Metrics bucket.", + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", "items": { "oneOf": [ { @@ -1268,8 +4026,8 @@ }, "type": "array" }, - "primary_measures": { - "description": "Primary measures bucket.", + "columns": { + "description": "Columns bucket (for tables).", "items": { "oneOf": [ { @@ -1285,11 +4043,34 @@ }, "type": "array" }, - "query": { - "$ref": "#/components/schemas/AacQuery" + "config": { + "$ref": "#/components/schemas/JsonNode" }, - "rows": { - "description": "Rows bucket (for tables).", + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", "items": { "oneOf": [ { @@ -1305,8 +4086,11 @@ }, "type": "array" }, - "secondary_measures": { - "description": "Secondary measures bucket.", + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", "items": { "oneOf": [ { @@ -1343,8 +4127,8 @@ "description": "Whether to show in AI results.", "type": "boolean" }, - "size": { - "description": "Size bucket.", + "size_by": { + "description": "Size by metrics bucket.", "items": { "oneOf": [ { @@ -1360,8 +4144,8 @@ }, "type": "array" }, - "stack": { - "description": "Stack bucket.", + "stack_by": { + "description": "Stack by attributes bucket.", "items": { "oneOf": [ { @@ -1391,8 +4175,11 @@ "example": "Sales by Region", "type": "string" }, - "trend": { - "description": "Trend bucket.", + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", "items": { "oneOf": [ { @@ -1409,32 +4196,9 @@ "type": "array" }, "type": { - "description": "Visualization type.", "enum": [ - "table", - "bar_chart", - "column_chart", - "line_chart", - "area_chart", - "scatter_chart", - "bubble_chart", - "pie_chart", - "donut_chart", - "treemap_chart", - "pyramid_chart", - "funnel_chart", - "heatmap_chart", - "bullet_chart", - "waterfall_chart", - "dependency_wheel_chart", - "sankey_chart", - "headline_chart", - "combo_chart", - "geo_chart", - "geo_area_chart", - "repeater_chart" + "line_chart" ], - "example": "bar_chart", "type": "string" }, "view_by": { @@ -1462,8 +4226,30 @@ ], "type": "object" }, - "AacWidget": { - "description": "Widgets in the section.", + "AacVisualizationWidget": { + "allOf": [ + { + "not": { + "required": [ + "content" + ] + } + }, + { + "not": { + "required": [ + "sections" + ] + } + }, + { + "not": { + "required": [ + "visualizations" + ] + } + } + ], "properties": { "additionalProperties": { "additionalProperties": { @@ -1477,6 +4263,10 @@ "format": "int32", "type": "integer" }, + "container": { + "description": "Container widget identifier.", + "type": "string" + }, "content": { "description": "Rich text content.", "type": "string" @@ -1495,12 +4285,22 @@ false ], "type": "boolean" + }, + { + "enum": [ + "inherit" + ], + "type": "string" } ] }, "drill_down": { "$ref": "#/components/schemas/JsonNode" }, + "enable_section_headers": { + "description": "Whether section headers are enabled for container widgets.", + "type": "boolean" + }, "ignore_dashboard_filters": { "description": "Deprecated. Use ignoredFilters instead.", "items": { @@ -1524,6 +4324,10 @@ }, "type": "array" }, + "layout_direction": { + "description": "Layout direction for container widgets.", + "type": "string" + }, "metric": { "description": "Inline metric reference.", "type": "string" @@ -1565,13 +4369,40 @@ "description": "Visualization ID reference.", "type": "string" }, + "visualizations": { + "description": "Visualization switcher items.", + "items": { + "$ref": "#/components/schemas/AacWidget" + }, + "type": "array" + }, "zoom_data": { "description": "Enable zooming to the data for certain visualization types (GAAC).", "type": "boolean" } }, + "required": [ + "visualization" + ], "type": "object" }, + "AacWidget": { + "description": "Widgets in the section.", + "oneOf": [ + { + "$ref": "#/components/schemas/AacVisualizationWidget" + }, + { + "$ref": "#/components/schemas/AacRichTextWidget" + }, + { + "$ref": "#/components/schemas/AacVisualizationSwitcherWidget" + }, + { + "$ref": "#/components/schemas/AacContainerWidget" + } + ] + }, "AacWidgetSize": { "description": "Deprecated widget size (legacy AAC).", "properties": { @@ -5937,7 +8768,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "example": "POSTGRESQL", "type": "string" @@ -14421,7 +17253,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "type": "string" } @@ -14637,7 +17470,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "type": "string" }, @@ -14811,7 +17645,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "type": "string" }, @@ -15039,7 +17874,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "type": "string" }, @@ -28726,11 +31562,27 @@ "description": "Turn on deep search. If true, content of complex objects will be searched as well, e.g. metrics in visualizations.", "type": "boolean" }, + "excludeTags": { + "description": "Exclude objects that contain any of the specified tags. This parameter only affects the search results. Objects with excluded tags are completely hidden from the results.", + "items": { + "description": "Tag to exclude.", + "type": "string" + }, + "type": "array" + }, "includeHidden": { "default": false, "description": "If true, includes hidden objects in search results. If false (default), excludes objects where isHidden=true.", "type": "boolean" }, + "includeTags": { + "description": "Include only objects that contain at least one of the specified tags (OR logic). This parameter only affects the search results. If an object has multiple tags, it will be included as long as it matches at least one tag from this parameter.", + "items": { + "description": "Tag to include.", + "type": "string" + }, + "type": "array" + }, "limit": { "default": 10, "description": "Maximum number of results to return. There is a hard limit and the actual number of returned results may be lower than what is requested.", @@ -29609,7 +32461,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "example": "POSTGRESQL", "type": "string" diff --git a/schemas/gooddata-metadata-client.json b/schemas/gooddata-metadata-client.json index 32190e8e2..8d8eca484 100644 --- a/schemas/gooddata-metadata-client.json +++ b/schemas/gooddata-metadata-client.json @@ -179,99 +179,177 @@ ], "type": "object" }, - "AacDashboard": { - "description": "AAC dashboard definition.", + "AacContainerWidget": { + "allOf": [ + { + "not": { + "required": [ + "visualization" + ] + } + }, + { + "not": { + "required": [ + "content" + ] + } + }, + { + "not": { + "required": [ + "visualizations" + ] + } + } + ], "properties": { - "active_tab_id": { - "description": "Active tab ID for tabbed dashboards.", - "type": "string" + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true }, - "cross_filtering": { - "description": "Whether cross filtering is enabled.", - "type": "boolean" + "columns": { + "description": "Widget width in grid columns (GAAC).", + "format": "int32", + "type": "integer" }, - "description": { - "description": "Dashboard description.", + "container": { + "description": "Container widget identifier.", "type": "string" }, - "enable_section_headers": { - "description": "Whether section headers are enabled.", - "type": "boolean" + "content": { + "description": "Rich text content.", + "type": "string" }, - "filter_views": { - "description": "Whether filter views are enabled.", - "type": "boolean" + "date": { + "description": "Date dataset for filtering.", + "type": "string" }, - "filters": { - "additionalProperties": { - "$ref": "#/components/schemas/AacDashboardFilter" - }, - "description": "Dashboard filters.", - "type": "object" + "description": { + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + }, + { + "enum": [ + "inherit" + ], + "type": "string" + } + ] }, - "id": { - "description": "Unique identifier of the dashboard.", - "example": "sales-overview", - "type": "string" + "drill_down": { + "$ref": "#/components/schemas/JsonNode" }, - "permissions": { - "$ref": "#/components/schemas/AacDashboardPermissions" + "enable_section_headers": { + "description": "Whether section headers are enabled for container widgets.", + "type": "boolean" }, - "plugins": { - "description": "Dashboard plugins.", + "ignore_dashboard_filters": { + "description": "Deprecated. Use ignoredFilters instead.", "items": { - "$ref": "#/components/schemas/AacDashboardPluginLink" + "description": "Deprecated. Use ignoredFilters instead.", + "type": "string" }, "type": "array" }, - "sections": { - "description": "Dashboard sections (for non-tabbed dashboards).", + "ignored_filters": { + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", "items": { - "$ref": "#/components/schemas/AacSection" + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", + "type": "string" }, "type": "array" }, - "tabs": { - "description": "Dashboard tabs (for tabbed dashboards).", + "interactions": { + "description": "Widget interactions (GAAC).", "items": { - "$ref": "#/components/schemas/AacTab" + "$ref": "#/components/schemas/JsonNode" }, "type": "array" }, - "tags": { - "description": "Metadata tags.", + "layout_direction": { + "description": "Layout direction for container widgets.", + "type": "string" + }, + "metric": { + "description": "Inline metric reference.", + "type": "string" + }, + "rows": { + "description": "Widget height in grid rows (GAAC).", + "format": "int32", + "type": "integer" + }, + "sections": { + "description": "Nested sections for layout widgets.", "items": { - "description": "Metadata tags.", - "type": "string" + "$ref": "#/components/schemas/AacSection" }, - "type": "array", - "uniqueItems": true + "type": "array" + }, + "size": { + "$ref": "#/components/schemas/AacWidgetSize" }, "title": { - "description": "Human readable title.", - "example": "Sales Overview", - "type": "string" + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + } + ] }, "type": { - "description": "Dashboard type discriminator.", - "example": "dashboard", + "description": "Widget type.", + "example": "visualization", "type": "string" }, - "user_filters_reset": { - "description": "Whether user can reset custom filters.", - "type": "boolean" + "visualization": { + "description": "Visualization ID reference.", + "type": "string" }, - "user_filters_save": { - "description": "Whether user filter settings are stored.", + "visualizations": { + "description": "Visualization switcher items.", + "items": { + "$ref": "#/components/schemas/AacWidget" + }, + "type": "array" + }, + "zoom_data": { + "description": "Enable zooming to the data for certain visualization types (GAAC).", "type": "boolean" } }, "required": [ - "id", - "type" + "sections" ], "type": "object" }, + "AacDashboard": { + "description": "AAC dashboard definition.", + "oneOf": [ + { + "$ref": "#/components/schemas/AacDashboardWithTabs" + }, + { + "$ref": "#/components/schemas/AacDashboardWithoutTabs" + } + ] + }, "AacDashboardFilter": { "description": "Tab-specific filters.", "properties": { @@ -386,67 +464,79 @@ ], "type": "object" }, - "AacDataset": { - "description": "AAC dataset definition.", + "AacDashboardWithTabs": { + "allOf": [ + { + "not": { + "required": [ + "sections" + ] + } + } + ], "properties": { - "data_source": { - "description": "Data source ID.", - "example": "my-postgres", + "active_tab_id": { + "description": "Active tab ID for tabbed dashboards.", "type": "string" }, + "cross_filtering": { + "description": "Whether cross filtering is enabled.", + "type": "boolean" + }, "description": { - "description": "Dataset description.", + "description": "Dashboard description.", "type": "string" }, - "fields": { + "enable_section_headers": { + "description": "Whether section headers are enabled.", + "type": "boolean" + }, + "filter_views": { + "description": "Whether filter views are enabled.", + "type": "boolean" + }, + "filters": { "additionalProperties": { - "$ref": "#/components/schemas/AacField" + "$ref": "#/components/schemas/AacDashboardFilter" }, - "description": "Dataset fields (attributes, facts, aggregated facts).", + "description": "Dashboard filters.", "type": "object" }, "id": { - "description": "Unique identifier of the dataset.", - "example": "customers", + "description": "Unique identifier of the dashboard.", + "example": "sales-overview", "type": "string" }, - "precedence": { - "description": "Precedence value for aggregate awareness.", - "format": "int32", - "type": "integer" + "permissions": { + "$ref": "#/components/schemas/AacDashboardPermissions" }, - "primary_key": { - "description": "Primary key column(s). Accepts either a single string or an array of strings.", - "oneOf": [ - { - "type": "string" - }, - { - "items": { + "plugins": { + "description": "Dashboard plugins.", + "items": { + "oneOf": [ + { "type": "string" }, - "type": "array" - }, - { - "type": "null" - } - ] + { + "$ref": "#/components/schemas/AacDashboardPluginLink" + } + ] + }, + "type": "array" }, - "references": { - "description": "References to other datasets.", + "sections": { + "description": "Dashboard sections (for non-tabbed dashboards).", "items": { - "$ref": "#/components/schemas/AacReference" + "$ref": "#/components/schemas/AacSection" }, "type": "array" }, - "sql": { - "description": "SQL statement defining this dataset.", - "type": "string" - }, - "table_path": { - "description": "Table path in the data source.", - "example": "public/customers", - "type": "string" + "tabs": { + "description": "Dashboard tabs (for tabbed dashboards).", + "items": { + "$ref": "#/components/schemas/AacTab" + }, + "type": "array" }, "tags": { "description": "Metadata tags.", @@ -459,7 +549,219 @@ }, "title": { "description": "Human readable title.", - "example": "Customers", + "example": "Sales Overview", + "type": "string" + }, + "type": { + "description": "Dashboard type discriminator.", + "example": "dashboard", + "type": "string" + }, + "user_filters_reset": { + "description": "Whether user can reset custom filters.", + "type": "boolean" + }, + "user_filters_save": { + "description": "Whether user filter settings are stored.", + "type": "boolean" + } + }, + "required": [ + "id", + "tabs", + "type" + ], + "type": "object" + }, + "AacDashboardWithoutTabs": { + "allOf": [ + { + "not": { + "required": [ + "tabs" + ] + } + }, + { + "not": { + "required": [ + "active_tab_id" + ] + } + } + ], + "properties": { + "active_tab_id": { + "description": "Active tab ID for tabbed dashboards.", + "type": "string" + }, + "cross_filtering": { + "description": "Whether cross filtering is enabled.", + "type": "boolean" + }, + "description": { + "description": "Dashboard description.", + "type": "string" + }, + "enable_section_headers": { + "description": "Whether section headers are enabled.", + "type": "boolean" + }, + "filter_views": { + "description": "Whether filter views are enabled.", + "type": "boolean" + }, + "filters": { + "additionalProperties": { + "$ref": "#/components/schemas/AacDashboardFilter" + }, + "description": "Dashboard filters.", + "type": "object" + }, + "id": { + "description": "Unique identifier of the dashboard.", + "example": "sales-overview", + "type": "string" + }, + "permissions": { + "$ref": "#/components/schemas/AacDashboardPermissions" + }, + "plugins": { + "description": "Dashboard plugins.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/AacDashboardPluginLink" + } + ] + }, + "type": "array" + }, + "sections": { + "description": "Dashboard sections (for non-tabbed dashboards).", + "items": { + "$ref": "#/components/schemas/AacSection" + }, + "type": "array" + }, + "tabs": { + "description": "Dashboard tabs (for tabbed dashboards).", + "items": { + "$ref": "#/components/schemas/AacTab" + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales Overview", + "type": "string" + }, + "type": { + "description": "Dashboard type discriminator.", + "example": "dashboard", + "type": "string" + }, + "user_filters_reset": { + "description": "Whether user can reset custom filters.", + "type": "boolean" + }, + "user_filters_save": { + "description": "Whether user filter settings are stored.", + "type": "boolean" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "AacDataset": { + "description": "AAC dataset definition.", + "properties": { + "data_source": { + "description": "Data source ID.", + "example": "my-postgres", + "type": "string" + }, + "description": { + "description": "Dataset description.", + "type": "string" + }, + "fields": { + "additionalProperties": { + "$ref": "#/components/schemas/AacField" + }, + "description": "Dataset fields (attributes, facts, aggregated facts).", + "type": "object" + }, + "id": { + "description": "Unique identifier of the dataset.", + "example": "customers", + "type": "string" + }, + "precedence": { + "description": "Precedence value for aggregate awareness.", + "format": "int32", + "type": "integer" + }, + "primary_key": { + "description": "Primary key column(s). Accepts either a single string or an array of strings.", + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "references": { + "description": "References to other datasets.", + "items": { + "$ref": "#/components/schemas/AacReference" + }, + "type": "array" + }, + "sql": { + "description": "SQL statement defining this dataset.", + "type": "string" + }, + "table_path": { + "description": "Table path in the data source.", + "example": "public/customers", + "type": "string" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Customers", "type": "string" }, "type": { @@ -958,7 +1260,7 @@ "type": "object" }, "AacQueryFilter": { - "description": "Query filters map: localId -> filter definition.", + "description": "Layer filters.", "properties": { "additionalProperties": { "additionalProperties": { @@ -980,6 +1282,18 @@ "description": "Condition for metric value filter.", "type": "string" }, + "dimensionality": { + "description": "Dimensionality for metric value filter.", + "items": { + "description": "Dimensionality for metric value filter.", + "type": "string" + }, + "type": "array" + }, + "display_as": { + "description": "Display as label (attribute filter).", + "type": "string" + }, "from": { "oneOf": [ { @@ -995,6 +1309,10 @@ "description": "Date granularity (date filter).", "type": "string" }, + "null_values_as_zero": { + "description": "Null values are treated as zero (metric value filter).", + "type": "boolean" + }, "state": { "$ref": "#/components/schemas/AacFilterState" }, @@ -1089,75 +1407,2410 @@ ], "type": "object" }, - "AacSection": { - "description": "Sections within the tab.", - "properties": { - "description": { - "description": "Section description.", - "type": "string" - }, - "header": { - "description": "Whether section header is visible.", - "type": "boolean" + "AacRichTextWidget": { + "allOf": [ + { + "not": { + "required": [ + "visualization" + ] + } }, - "title": { - "description": "Section title.", - "type": "string" + { + "not": { + "required": [ + "sections" + ] + } }, - "widgets": { - "description": "Widgets in the section.", - "items": { - "$ref": "#/components/schemas/AacWidget" - }, - "type": "array" + { + "not": { + "required": [ + "visualizations" + ] + } } - }, - "type": "object" - }, - "AacTab": { - "description": "Dashboard tabs (for tabbed dashboards).", + ], "properties": { - "filters": { + "additionalProperties": { "additionalProperties": { - "$ref": "#/components/schemas/AacDashboardFilter" + "$ref": "#/components/schemas/JsonNode" }, - "description": "Tab-specific filters.", - "type": "object" + "type": "object", + "writeOnly": true + }, + "columns": { + "description": "Widget width in grid columns (GAAC).", + "format": "int32", + "type": "integer" + }, + "container": { + "description": "Container widget identifier.", + "type": "string" + }, + "content": { + "description": "Rich text content.", + "type": "string" + }, + "date": { + "description": "Date dataset for filtering.", + "type": "string" + }, + "description": { + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + }, + { + "enum": [ + "inherit" + ], + "type": "string" + } + ] + }, + "drill_down": { + "$ref": "#/components/schemas/JsonNode" + }, + "enable_section_headers": { + "description": "Whether section headers are enabled for container widgets.", + "type": "boolean" + }, + "ignore_dashboard_filters": { + "description": "Deprecated. Use ignoredFilters instead.", + "items": { + "description": "Deprecated. Use ignoredFilters instead.", + "type": "string" + }, + "type": "array" + }, + "ignored_filters": { + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", + "items": { + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", + "type": "string" + }, + "type": "array" + }, + "interactions": { + "description": "Widget interactions (GAAC).", + "items": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "array" + }, + "layout_direction": { + "description": "Layout direction for container widgets.", + "type": "string" + }, + "metric": { + "description": "Inline metric reference.", + "type": "string" + }, + "rows": { + "description": "Widget height in grid rows (GAAC).", + "format": "int32", + "type": "integer" + }, + "sections": { + "description": "Nested sections for layout widgets.", + "items": { + "$ref": "#/components/schemas/AacSection" + }, + "type": "array" + }, + "size": { + "$ref": "#/components/schemas/AacWidgetSize" + }, + "title": { + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + } + ] + }, + "type": { + "description": "Widget type.", + "example": "visualization", + "type": "string" + }, + "visualization": { + "description": "Visualization ID reference.", + "type": "string" + }, + "visualizations": { + "description": "Visualization switcher items.", + "items": { + "$ref": "#/components/schemas/AacWidget" + }, + "type": "array" + }, + "zoom_data": { + "description": "Enable zooming to the data for certain visualization types (GAAC).", + "type": "boolean" + } + }, + "required": [ + "content" + ], + "type": "object" + }, + "AacSection": { + "description": "Sections within the tab.", + "properties": { + "description": { + "description": "Section description.", + "type": "string" + }, + "header": { + "description": "Whether section header is visible.", + "type": "boolean" + }, + "title": { + "description": "Section title.", + "type": "string" + }, + "widgets": { + "description": "Widgets in the section.", + "items": { + "$ref": "#/components/schemas/AacWidget" + }, + "type": "array" + } + }, + "type": "object" + }, + "AacTab": { + "description": "Dashboard tabs (for tabbed dashboards).", + "properties": { + "filters": { + "additionalProperties": { + "$ref": "#/components/schemas/AacDashboardFilter" + }, + "description": "Tab-specific filters.", + "type": "object" + }, + "id": { + "description": "Unique identifier of the tab.", + "type": "string" + }, + "sections": { + "description": "Sections within the tab.", + "items": { + "$ref": "#/components/schemas/AacSection" + }, + "type": "array" + }, + "title": { + "description": "Display title for the tab.", + "type": "string" + } + }, + "required": [ + "id", + "title" + ], + "type": "object" + }, + "AacVisualization": { + "description": "AAC visualization definition.", + "discriminator": { + "mapping": { + "area_chart": "#/components/schemas/AacVisualizationStackedBuckets", + "bar_chart": "#/components/schemas/AacVisualizationStackedBuckets", + "bubble_chart": "#/components/schemas/AacVisualizationBubbleBuckets", + "bullet_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "column_chart": "#/components/schemas/AacVisualizationStackedBuckets", + "combo_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "dependency_wheel_chart": "#/components/schemas/AacVisualizationDependencyBuckets", + "donut_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "funnel_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "geo_area_chart": "#/components/schemas/AacVisualizationGeoBuckets", + "geo_chart": "#/components/schemas/AacVisualizationGeoBuckets", + "headline_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "heatmap_chart": "#/components/schemas/AacVisualizationTableBuckets", + "line_chart": "#/components/schemas/AacVisualizationTrendBuckets", + "pie_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "pyramid_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "repeater_chart": "#/components/schemas/AacVisualizationTableBuckets", + "sankey_chart": "#/components/schemas/AacVisualizationDependencyBuckets", + "scatter_chart": "#/components/schemas/AacVisualizationScatterBuckets", + "table": "#/components/schemas/AacVisualizationTableBuckets", + "treemap_chart": "#/components/schemas/AacVisualizationBasicBuckets", + "waterfall_chart": "#/components/schemas/AacVisualizationBasicBuckets" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/AacVisualizationTableBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationStackedBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationScatterBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationBubbleBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationTrendBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationGeoBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationBasicBuckets" + }, + { + "$ref": "#/components/schemas/AacVisualizationDependencyBuckets" + } + ] + }, + "AacVisualizationBasicBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "bullet_chart", + "combo_chart", + "donut_chart", + "funnel_chart", + "headline_chart", + "pie_chart", + "pyramid_chart", + "treemap_chart", + "waterfall_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationBubbleBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "bubble_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationDependencyBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "dependency_wheel_chart", + "sankey_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationGeoBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "geo_chart", + "geo_area_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationLayer": { + "description": "Visualization data layers (for geo charts).", + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "filters": { + "additionalProperties": { + "$ref": "#/components/schemas/AacQueryFilter" + }, + "description": "Layer filters.", + "type": "object" + }, + "id": { + "description": "Unique identifier of the layer.", + "type": "string" + }, + "metrics": { + "description": "Layer metrics.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Layer segment by.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "sorts": { + "description": "Layer sorting definitions.", + "items": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "array" + }, + "title": { + "description": "Layer title.", + "type": "string" + }, + "type": { + "description": "Layer type.", + "example": "pushpin", + "type": "string" + }, + "view_by": { + "description": "Layer view by.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "AacVisualizationScatterBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "scatter_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationStackedBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } + }, + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "segment_by": { + "description": "Segment by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "stack_by": { + "description": "Stack by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "description": "Human readable title.", + "example": "Sales by Region", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "bar_chart", + "column_chart", + "area_chart" + ], + "type": "string" + }, + "view_by": { + "description": "View by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationSwitcherWidget": { + "allOf": [ + { + "not": { + "required": [ + "visualization" + ] + } + }, + { + "not": { + "required": [ + "content" + ] + } + }, + { + "not": { + "required": [ + "sections" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "columns": { + "description": "Widget width in grid columns (GAAC).", + "format": "int32", + "type": "integer" + }, + "container": { + "description": "Container widget identifier.", + "type": "string" + }, + "content": { + "description": "Rich text content.", + "type": "string" + }, + "date": { + "description": "Date dataset for filtering.", + "type": "string" + }, + "description": { + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + }, + { + "enum": [ + "inherit" + ], + "type": "string" + } + ] + }, + "drill_down": { + "$ref": "#/components/schemas/JsonNode" + }, + "enable_section_headers": { + "description": "Whether section headers are enabled for container widgets.", + "type": "boolean" + }, + "ignore_dashboard_filters": { + "description": "Deprecated. Use ignoredFilters instead.", + "items": { + "description": "Deprecated. Use ignoredFilters instead.", + "type": "string" + }, + "type": "array" + }, + "ignored_filters": { + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", + "items": { + "description": "A list of dashboard filters to be ignored for this widget (GAAC).", + "type": "string" + }, + "type": "array" + }, + "interactions": { + "description": "Widget interactions (GAAC).", + "items": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "array" + }, + "layout_direction": { + "description": "Layout direction for container widgets.", + "type": "string" + }, + "metric": { + "description": "Inline metric reference.", + "type": "string" + }, + "rows": { + "description": "Widget height in grid rows (GAAC).", + "format": "int32", + "type": "integer" + }, + "sections": { + "description": "Nested sections for layout widgets.", + "items": { + "$ref": "#/components/schemas/AacSection" + }, + "type": "array" + }, + "size": { + "$ref": "#/components/schemas/AacWidgetSize" + }, + "title": { + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + false + ], + "type": "boolean" + } + ] + }, + "type": { + "description": "Widget type.", + "example": "visualization", + "type": "string" + }, + "visualization": { + "description": "Visualization ID reference.", + "type": "string" + }, + "visualizations": { + "items": { + "$ref": "#/components/schemas/AacVisualizationWidget" + }, + "type": "array" + }, + "zoom_data": { + "description": "Enable zooming to the data for certain visualization types (GAAC).", + "type": "boolean" + } + }, + "required": [ + "visualizations" + ], + "type": "object" + }, + "AacVisualizationTableBuckets": { + "allOf": [ + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "trend_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "columns": { + "description": "Columns bucket (for tables).", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "config": { + "$ref": "#/components/schemas/JsonNode" + }, + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" }, - "id": { - "description": "Unique identifier of the tab.", - "type": "string" + "query": { + "$ref": "#/components/schemas/AacQuery" }, - "sections": { - "description": "Sections within the tab.", + "rows": { + "description": "Rows bucket (for tables).", "items": { - "$ref": "#/components/schemas/AacSection" + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] }, "type": "array" }, - "title": { - "description": "Display title for the tab.", - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - "AacVisualization": { - "description": "AAC visualization definition.", - "properties": { - "additionalProperties": { - "additionalProperties": { - "$ref": "#/components/schemas/JsonNode" - }, - "type": "object", - "writeOnly": true - }, - "attribute": { - "description": "Attribute bucket (for repeater).", + "segment_by": { + "description": "Segment by attributes bucket.", "items": { "oneOf": [ { @@ -1173,8 +3826,12 @@ }, "type": "array" }, - "color": { - "description": "Color bucket.", + "show_in_ai_results": { + "description": "Whether to show in AI results.", + "type": "boolean" + }, + "size_by": { + "description": "Size by metrics bucket.", "items": { "oneOf": [ { @@ -1190,8 +3847,8 @@ }, "type": "array" }, - "columns": { - "description": "Columns bucket (for tables).", + "stack_by": { + "description": "Stack by attributes bucket.", "items": { "oneOf": [ { @@ -1207,24 +3864,50 @@ }, "type": "array" }, - "config": { - "$ref": "#/components/schemas/JsonNode" + "tags": { + "description": "Metadata tags.", + "items": { + "description": "Metadata tags.", + "type": "string" + }, + "type": "array", + "uniqueItems": true }, - "description": { - "description": "Visualization description.", + "title": { + "description": "Human readable title.", + "example": "Sales by Region", "type": "string" }, - "id": { - "description": "Unique identifier of the visualization.", - "example": "sales-by-region", - "type": "string" + "to": { + "$ref": "#/components/schemas/JsonNode" }, - "is_hidden": { - "description": "Deprecated. Use showInAiResults instead.", - "type": "boolean" + "trend_by": { + "description": "Trend by attributes bucket.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + "type": { + "enum": [ + "table", + "heatmap_chart", + "repeater_chart" + ], + "type": "string" }, - "location": { - "description": "Location bucket (for geo charts).", + "view_by": { + "description": "View by attributes bucket.", "items": { "oneOf": [ { @@ -1239,9 +3922,84 @@ ] }, "type": "array" + } + }, + "required": [ + "id", + "query", + "type" + ], + "type": "object" + }, + "AacVisualizationTrendBuckets": { + "allOf": [ + { + "not": { + "required": [ + "rows" + ] + } }, - "metrics": { - "description": "Metrics bucket.", + { + "not": { + "required": [ + "columns" + ] + } + }, + { + "not": { + "required": [ + "from" + ] + } + }, + { + "not": { + "required": [ + "to" + ] + } + }, + { + "not": { + "required": [ + "stack_by" + ] + } + }, + { + "not": { + "required": [ + "size_by" + ] + } + }, + { + "not": { + "required": [ + "attributes" + ] + } + }, + { + "not": { + "required": [ + "layers" + ] + } + } + ], + "properties": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + }, + "type": "object", + "writeOnly": true + }, + "attributes": { + "description": "Attributes bucket (for scatter).", "items": { "oneOf": [ { @@ -1257,8 +4015,8 @@ }, "type": "array" }, - "primary_measures": { - "description": "Primary measures bucket.", + "columns": { + "description": "Columns bucket (for tables).", "items": { "oneOf": [ { @@ -1274,11 +4032,34 @@ }, "type": "array" }, - "query": { - "$ref": "#/components/schemas/AacQuery" + "config": { + "$ref": "#/components/schemas/JsonNode" }, - "rows": { - "description": "Rows bucket (for tables).", + "description": { + "description": "Visualization description.", + "type": "string" + }, + "from": { + "$ref": "#/components/schemas/JsonNode" + }, + "id": { + "description": "Unique identifier of the visualization.", + "example": "sales-by-region", + "type": "string" + }, + "is_hidden": { + "description": "Deprecated. Use showInAiResults instead.", + "type": "boolean" + }, + "layers": { + "description": "Visualization data layers (for geo charts).", + "items": { + "$ref": "#/components/schemas/AacVisualizationLayer" + }, + "type": "array" + }, + "metrics": { + "description": "Metrics bucket.", "items": { "oneOf": [ { @@ -1294,8 +4075,11 @@ }, "type": "array" }, - "secondary_measures": { - "description": "Secondary measures bucket.", + "query": { + "$ref": "#/components/schemas/AacQuery" + }, + "rows": { + "description": "Rows bucket (for tables).", "items": { "oneOf": [ { @@ -1332,8 +4116,8 @@ "description": "Whether to show in AI results.", "type": "boolean" }, - "size": { - "description": "Size bucket.", + "size_by": { + "description": "Size by metrics bucket.", "items": { "oneOf": [ { @@ -1349,8 +4133,8 @@ }, "type": "array" }, - "stack": { - "description": "Stack bucket.", + "stack_by": { + "description": "Stack by attributes bucket.", "items": { "oneOf": [ { @@ -1380,8 +4164,11 @@ "example": "Sales by Region", "type": "string" }, - "trend": { - "description": "Trend bucket.", + "to": { + "$ref": "#/components/schemas/JsonNode" + }, + "trend_by": { + "description": "Trend by attributes bucket.", "items": { "oneOf": [ { @@ -1398,32 +4185,9 @@ "type": "array" }, "type": { - "description": "Visualization type.", "enum": [ - "table", - "bar_chart", - "column_chart", - "line_chart", - "area_chart", - "scatter_chart", - "bubble_chart", - "pie_chart", - "donut_chart", - "treemap_chart", - "pyramid_chart", - "funnel_chart", - "heatmap_chart", - "bullet_chart", - "waterfall_chart", - "dependency_wheel_chart", - "sankey_chart", - "headline_chart", - "combo_chart", - "geo_chart", - "geo_area_chart", - "repeater_chart" + "line_chart" ], - "example": "bar_chart", "type": "string" }, "view_by": { @@ -1451,8 +4215,30 @@ ], "type": "object" }, - "AacWidget": { - "description": "Widgets in the section.", + "AacVisualizationWidget": { + "allOf": [ + { + "not": { + "required": [ + "content" + ] + } + }, + { + "not": { + "required": [ + "sections" + ] + } + }, + { + "not": { + "required": [ + "visualizations" + ] + } + } + ], "properties": { "additionalProperties": { "additionalProperties": { @@ -1466,6 +4252,10 @@ "format": "int32", "type": "integer" }, + "container": { + "description": "Container widget identifier.", + "type": "string" + }, "content": { "description": "Rich text content.", "type": "string" @@ -1484,12 +4274,22 @@ false ], "type": "boolean" + }, + { + "enum": [ + "inherit" + ], + "type": "string" } ] }, "drill_down": { "$ref": "#/components/schemas/JsonNode" }, + "enable_section_headers": { + "description": "Whether section headers are enabled for container widgets.", + "type": "boolean" + }, "ignore_dashboard_filters": { "description": "Deprecated. Use ignoredFilters instead.", "items": { @@ -1513,6 +4313,10 @@ }, "type": "array" }, + "layout_direction": { + "description": "Layout direction for container widgets.", + "type": "string" + }, "metric": { "description": "Inline metric reference.", "type": "string" @@ -1554,13 +4358,40 @@ "description": "Visualization ID reference.", "type": "string" }, + "visualizations": { + "description": "Visualization switcher items.", + "items": { + "$ref": "#/components/schemas/AacWidget" + }, + "type": "array" + }, "zoom_data": { "description": "Enable zooming to the data for certain visualization types (GAAC).", "type": "boolean" } }, + "required": [ + "visualization" + ], "type": "object" }, + "AacWidget": { + "description": "Widgets in the section.", + "oneOf": [ + { + "$ref": "#/components/schemas/AacVisualizationWidget" + }, + { + "$ref": "#/components/schemas/AacRichTextWidget" + }, + { + "$ref": "#/components/schemas/AacVisualizationSwitcherWidget" + }, + { + "$ref": "#/components/schemas/AacContainerWidget" + } + ] + }, "AacWidgetSize": { "description": "Deprecated widget size (legacy AAC).", "properties": { @@ -4299,7 +7130,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "example": "POSTGRESQL", "type": "string" @@ -11913,7 +14745,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "type": "string" } @@ -12129,7 +14962,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "type": "string" }, @@ -12303,7 +15137,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "type": "string" }, @@ -12531,7 +15366,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "type": "string" }, diff --git a/schemas/gooddata-scan-client.json b/schemas/gooddata-scan-client.json index 6f90e952a..e649eed8b 100644 --- a/schemas/gooddata-scan-client.json +++ b/schemas/gooddata-scan-client.json @@ -646,7 +646,8 @@ "FLEXCONNECT", "STARROCKS", "ATHENA", - "MONGODB" + "MONGODB", + "CRATEDB" ], "example": "POSTGRESQL", "type": "string"