From e77761125ef80ef7f161c96cbbff2ad86fe7b145 Mon Sep 17 00:00:00 2001 From: Dan Homola Date: Tue, 18 Mar 2025 13:31:00 +0100 Subject: [PATCH] chore: re-generate client Add the possibility to pass ExecutionSettings to Raw Exports. JIRA: CQ-1206 risk: low --- gooddata-api-client/.openapi-generator/FILES | 4 + gooddata-api-client/README.md | 9 + gooddata-api-client/docs/ActionsApi.md | 224 ++++++++ gooddata-api-client/docs/AdHocAutomation.md | 22 + gooddata-api-client/docs/AutomationsApi.md | 221 ++++++++ .../docs/CreatedVisualizations.md | 1 + .../docs/DeclarativeOrganizationInfo.md | 1 - gooddata-api-client/docs/EntitiesApi.md | 2 - .../docs/JsonApiOrganizationInAttributes.md | 1 - .../docs/JsonApiOrganizationOutAttributes.md | 1 - gooddata-api-client/docs/LayoutApi.md | 1 - .../docs/MeasureGroupHeaders.md | 2 - .../docs/NotificationChannelsApi.md | 212 ++++++++ .../docs/OrganizationControllerApi.md | 2 - .../docs/OrganizationDeclarativeAPIsApi.md | 1 - .../docs/OrganizationEntityAPIsApi.md | 2 - gooddata-api-client/docs/RawCustomOverride.md | 2 +- gooddata-api-client/docs/RawExportApi.md | 3 + gooddata-api-client/docs/RawExportRequest.md | 1 + .../docs/ResultDimensionHeader.md | 2 - gooddata-api-client/docs/Suggestion.md | 2 +- .../docs/TriggerAutomationRequest.md | 12 + .../gooddata_api_client/api/actions_api.py | 282 ++++++++++ .../api/automations_api.py | 282 ++++++++++ .../api/notification_channels_api.py | 424 +++++++++++++++ .../model/ad_hoc_automation.py | 340 ++++++++++++ .../model/created_visualizations.py | 12 +- .../model/declarative_organization_info.py | 4 - .../json_api_organization_in_attributes.py | 4 - .../json_api_organization_out_attributes.py | 4 - .../model/measure_group_headers.py | 8 - .../model/raw_custom_override.py | 4 +- .../model/raw_export_request.py | 6 + .../model/result_dimension_header.py | 8 - .../model/trigger_automation_request.py | 276 ++++++++++ .../gooddata_api_client/models/__init__.py | 2 + schemas/gooddata-afm-client.json | 18 +- schemas/gooddata-api-client.json | 196 ++++++- schemas/gooddata-automation-client.json | 503 ++++++++++++++++++ schemas/gooddata-export-client.json | 20 +- schemas/gooddata-metadata-client.json | 16 - 41 files changed, 3038 insertions(+), 99 deletions(-) create mode 100644 gooddata-api-client/docs/AdHocAutomation.md create mode 100644 gooddata-api-client/docs/TriggerAutomationRequest.md create mode 100644 gooddata-api-client/gooddata_api_client/model/ad_hoc_automation.py create mode 100644 gooddata-api-client/gooddata_api_client/model/trigger_automation_request.py diff --git a/gooddata-api-client/.openapi-generator/FILES b/gooddata-api-client/.openapi-generator/FILES index 46dd96ed8..b92686023 100644 --- a/gooddata-api-client/.openapi-generator/FILES +++ b/gooddata-api-client/.openapi-generator/FILES @@ -8,6 +8,7 @@ docs/AbsoluteDateFilterAbsoluteDateFilter.md docs/AbstractMeasureValueFilter.md docs/ActionsApi.md docs/ActiveObjectIdentification.md +docs/AdHocAutomation.md docs/AfmExecution.md docs/AfmExecutionResponse.md docs/AfmIdentifier.md @@ -878,6 +879,7 @@ docs/TotalDimension.md docs/TotalExecutionResultHeader.md docs/TotalResultHeader.md docs/TranslationsApi.md +docs/TriggerAutomationRequest.md docs/UnsubscribeApi.md docs/UsageApi.md docs/UserAssignee.md @@ -1007,6 +1009,7 @@ gooddata_api_client/model/absolute_date_filter.py gooddata_api_client/model/absolute_date_filter_absolute_date_filter.py gooddata_api_client/model/abstract_measure_value_filter.py gooddata_api_client/model/active_object_identification.py +gooddata_api_client/model/ad_hoc_automation.py gooddata_api_client/model/afm.py gooddata_api_client/model/afm_execution.py gooddata_api_client/model/afm_execution_response.py @@ -1829,6 +1832,7 @@ gooddata_api_client/model/total.py gooddata_api_client/model/total_dimension.py gooddata_api_client/model/total_execution_result_header.py gooddata_api_client/model/total_result_header.py +gooddata_api_client/model/trigger_automation_request.py gooddata_api_client/model/user_assignee.py gooddata_api_client/model/user_context.py gooddata_api_client/model/user_group_assignee.py diff --git a/gooddata-api-client/README.md b/gooddata-api-client/README.md index 8b6d3b729..460a34665 100644 --- a/gooddata-api-client/README.md +++ b/gooddata-api-client/README.md @@ -112,6 +112,8 @@ Class | Method | HTTP request | Description *AutomationsApi* | [**get_entity_automations**](docs/AutomationsApi.md#get_entity_automations) | **GET** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Get an Automation *AutomationsApi* | [**patch_entity_automations**](docs/AutomationsApi.md#patch_entity_automations) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Patch an Automation *AutomationsApi* | [**set_automations**](docs/AutomationsApi.md#set_automations) | **PUT** /api/v1/layout/workspaces/{workspaceId}/automations | Set automations +*AutomationsApi* | [**trigger_automation**](docs/AutomationsApi.md#trigger_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/trigger | Trigger automation. +*AutomationsApi* | [**trigger_existing_automation**](docs/AutomationsApi.md#trigger_existing_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/trigger | Trigger existing automation. *AutomationsApi* | [**update_entity_automations**](docs/AutomationsApi.md#update_entity_automations) | **PUT** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Put an Automation *AvailableDriversApi* | [**get_data_source_drivers**](docs/AvailableDriversApi.md#get_data_source_drivers) | **GET** /api/v1/options/availableDrivers | Get all available data source drivers *CSPDirectivesApi* | [**create_entity_csp_directives**](docs/CSPDirectivesApi.md#create_entity_csp_directives) | **POST** /api/v1/entities/cspDirectives | Post CSP Directives @@ -244,6 +246,9 @@ Class | Method | HTTP request | Description *NotificationChannelsApi* | [**get_all_entities_notification_channels**](docs/NotificationChannelsApi.md#get_all_entities_notification_channels) | **GET** /api/v1/entities/notificationChannels | Get all Notification Channel entities *NotificationChannelsApi* | [**get_entity_notification_channels**](docs/NotificationChannelsApi.md#get_entity_notification_channels) | **GET** /api/v1/entities/notificationChannels/{id} | Get Notification Channel entity *NotificationChannelsApi* | [**get_notification_channels_layout**](docs/NotificationChannelsApi.md#get_notification_channels_layout) | **GET** /api/v1/layout/notificationChannels | Get all notification channels layout +*NotificationChannelsApi* | [**get_notifications**](docs/NotificationChannelsApi.md#get_notifications) | **GET** /api/v1/actions/notifications | Get latest notifications. +*NotificationChannelsApi* | [**mark_as_read_notification**](docs/NotificationChannelsApi.md#mark_as_read_notification) | **POST** /api/v1/actions/notifications/{notificationId}/markAsRead | Mark notification as read. +*NotificationChannelsApi* | [**mark_as_read_notification_all**](docs/NotificationChannelsApi.md#mark_as_read_notification_all) | **POST** /api/v1/actions/notifications/markAsRead | Mark all notifications as read. *NotificationChannelsApi* | [**patch_entity_notification_channels**](docs/NotificationChannelsApi.md#patch_entity_notification_channels) | **PATCH** /api/v1/entities/notificationChannels/{id} | Patch Notification Channel entity *NotificationChannelsApi* | [**set_notification_channels**](docs/NotificationChannelsApi.md#set_notification_channels) | **PUT** /api/v1/layout/notificationChannels | Set all notification channels *NotificationChannelsApi* | [**test_existing_notification_channel**](docs/NotificationChannelsApi.md#test_existing_notification_channel) | **POST** /api/v1/actions/notificationChannels/{notificationChannelId}/test | Test existing notification channel. @@ -457,6 +462,8 @@ Class | Method | HTTP request | Description *ActionsApi* | [**test_data_source_definition**](docs/ActionsApi.md#test_data_source_definition) | **POST** /api/v1/actions/dataSource/test | Test connection by data source definition *ActionsApi* | [**test_existing_notification_channel**](docs/ActionsApi.md#test_existing_notification_channel) | **POST** /api/v1/actions/notificationChannels/{notificationChannelId}/test | Test existing notification channel. *ActionsApi* | [**test_notification_channel**](docs/ActionsApi.md#test_notification_channel) | **POST** /api/v1/actions/notificationChannels/test | Test notification channel. +*ActionsApi* | [**trigger_automation**](docs/ActionsApi.md#trigger_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/trigger | Trigger automation. +*ActionsApi* | [**trigger_existing_automation**](docs/ActionsApi.md#trigger_existing_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/trigger | Trigger existing automation. *ActionsApi* | [**unsubscribe_all_automations**](docs/ActionsApi.md#unsubscribe_all_automations) | **DELETE** /api/v1/actions/organization/automations/unsubscribe | Unsubscribe from all automations in all workspaces *ActionsApi* | [**unsubscribe_automation**](docs/ActionsApi.md#unsubscribe_automation) | **DELETE** /api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/unsubscribe | Unsubscribe from an automation *ActionsApi* | [**unsubscribe_workspace_automations**](docs/ActionsApi.md#unsubscribe_workspace_automations) | **DELETE** /api/v1/actions/workspaces/{workspaceId}/automations/unsubscribe | Unsubscribe from all automations in the workspace @@ -884,6 +891,7 @@ Class | Method | HTTP request | Description - [AbsoluteDateFilterAbsoluteDateFilter](docs/AbsoluteDateFilterAbsoluteDateFilter.md) - [AbstractMeasureValueFilter](docs/AbstractMeasureValueFilter.md) - [ActiveObjectIdentification](docs/ActiveObjectIdentification.md) + - [AdHocAutomation](docs/AdHocAutomation.md) - [AfmExecution](docs/AfmExecution.md) - [AfmExecutionResponse](docs/AfmExecutionResponse.md) - [AfmIdentifier](docs/AfmIdentifier.md) @@ -1705,6 +1713,7 @@ Class | Method | HTTP request | Description - [TotalDimension](docs/TotalDimension.md) - [TotalExecutionResultHeader](docs/TotalExecutionResultHeader.md) - [TotalResultHeader](docs/TotalResultHeader.md) + - [TriggerAutomationRequest](docs/TriggerAutomationRequest.md) - [UserAssignee](docs/UserAssignee.md) - [UserContext](docs/UserContext.md) - [UserGroupAssignee](docs/UserGroupAssignee.md) diff --git a/gooddata-api-client/docs/ActionsApi.md b/gooddata-api-client/docs/ActionsApi.md index f98bfad1f..54f33c224 100644 --- a/gooddata-api-client/docs/ActionsApi.md +++ b/gooddata-api-client/docs/ActionsApi.md @@ -73,6 +73,8 @@ Method | HTTP request | Description [**test_data_source_definition**](ActionsApi.md#test_data_source_definition) | **POST** /api/v1/actions/dataSource/test | Test connection by data source definition [**test_existing_notification_channel**](ActionsApi.md#test_existing_notification_channel) | **POST** /api/v1/actions/notificationChannels/{notificationChannelId}/test | Test existing notification channel. [**test_notification_channel**](ActionsApi.md#test_notification_channel) | **POST** /api/v1/actions/notificationChannels/test | Test notification channel. +[**trigger_automation**](ActionsApi.md#trigger_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/trigger | Trigger automation. +[**trigger_existing_automation**](ActionsApi.md#trigger_existing_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/trigger | Trigger existing automation. [**unsubscribe_all_automations**](ActionsApi.md#unsubscribe_all_automations) | **DELETE** /api/v1/actions/organization/automations/unsubscribe | Unsubscribe from all automations in all workspaces [**unsubscribe_automation**](ActionsApi.md#unsubscribe_automation) | **DELETE** /api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/unsubscribe | Unsubscribe from an automation [**unsubscribe_workspace_automations**](ActionsApi.md#unsubscribe_workspace_automations) | **DELETE** /api/v1/actions/workspaces/{workspaceId}/automations/unsubscribe | Unsubscribe from all automations in the workspace @@ -1741,6 +1743,9 @@ with gooddata_api_client.ApiClient() as api_client: ), ], ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + ), file_name="result", format="CSV", ) # RawExportRequest | @@ -5552,6 +5557,225 @@ No authorization required [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **trigger_automation** +> trigger_automation(workspace_id, trigger_automation_request) + +Trigger automation. + +Trigger the automation in the request. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from gooddata_api_client.model.trigger_automation_request import TriggerAutomationRequest +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = actions_api.ActionsApi(api_client) + workspace_id = "workspaceId_example" # str | + trigger_automation_request = TriggerAutomationRequest( + automation=AdHocAutomation( + analytical_dashboard=DeclarativeAnalyticalDashboardIdentifier( + id="dashboard123", + type="analyticalDashboard", + ), + description="description_example", + details={ + "key": "key_example", + }, + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], + metadata=JsonNode(), + notification_channel=DeclarativeNotificationChannelIdentifier( + id="webhook123", + type="notificationChannel", + ), + recipients=[ + DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + ], + tabular_exports=[ + AutomationTabularExport( + request_payload=TabularExportRequest( + custom_override=CustomOverride( + labels={ + "key": CustomLabel( + title="title_example", + ), + }, + metrics={ + "key": CustomMetric( + format="format_example", + title="title_example", + ), + }, + ), + execution_result="ff483727196c9dc862c7fd3a5a84df55c96d61a4", + file_name="result", + format="CSV", + metadata=JsonNode(), + related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + settings=Settings( + merge_headers=True, + pdf_page_size="a4 landscape", + pdf_table_style=[ + PdfTableStyle( + properties=[ + PdfTableStyleProperty( + key="key_example", + value="value_example", + ), + ], + selector="selector_example", + ), + ], + pdf_top_left_content="Good", + pdf_top_right_content="Morning", + show_filters=False, + ), + visualization_object="f7c359bc-c230-4487-b15b-ad9685bcb537", + visualization_object_custom_filters=[ + {}, + ], + ), + ), + ], + tags=["Revenue","Sales"], + title="title_example", + visual_exports=[ + AutomationVisualExport( + request_payload=VisualExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + metadata={}, + ), + ), + ], + ), + ) # TriggerAutomationRequest | + + # example passing only required values which don't have defaults set + try: + # Trigger automation. + api_instance.trigger_automation(workspace_id, trigger_automation_request) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->trigger_automation: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **trigger_automation_request** | [**TriggerAutomationRequest**](TriggerAutomationRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | The automation is successfully triggered. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **trigger_existing_automation** +> trigger_existing_automation(workspace_id, automation_id) + +Trigger existing automation. + +Trigger the existing automation to execute immediately. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = actions_api.ActionsApi(api_client) + workspace_id = "workspaceId_example" # str | + automation_id = "automationId_example" # str | + + # example passing only required values which don't have defaults set + try: + # Trigger existing automation. + api_instance.trigger_existing_automation(workspace_id, automation_id) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->trigger_existing_automation: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **automation_id** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | The automation is successfully triggered. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **unsubscribe_all_automations** > unsubscribe_all_automations() diff --git a/gooddata-api-client/docs/AdHocAutomation.md b/gooddata-api-client/docs/AdHocAutomation.md new file mode 100644 index 000000000..871b51cee --- /dev/null +++ b/gooddata-api-client/docs/AdHocAutomation.md @@ -0,0 +1,22 @@ +# AdHocAutomation + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**analytical_dashboard** | [**DeclarativeAnalyticalDashboardIdentifier**](DeclarativeAnalyticalDashboardIdentifier.md) | | [optional] +**description** | **str** | | [optional] +**details** | **{str: (str,)}** | Additional details to be included in the automated message. | [optional] +**external_recipients** | [**[AutomationExternalRecipient]**](AutomationExternalRecipient.md) | External recipients of the automation action results. | [optional] +**metadata** | [**JsonNode**](JsonNode.md) | | [optional] +**notification_channel** | [**DeclarativeNotificationChannelIdentifier**](DeclarativeNotificationChannelIdentifier.md) | | [optional] +**recipients** | [**[DeclarativeUserIdentifier]**](DeclarativeUserIdentifier.md) | | [optional] +**tabular_exports** | [**[AutomationTabularExport]**](AutomationTabularExport.md) | | [optional] +**tags** | **[str]** | A list of tags. | [optional] +**title** | **str** | | [optional] +**visual_exports** | [**[AutomationVisualExport]**](AutomationVisualExport.md) | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/AutomationsApi.md b/gooddata-api-client/docs/AutomationsApi.md index bd9caea53..2d103536b 100644 --- a/gooddata-api-client/docs/AutomationsApi.md +++ b/gooddata-api-client/docs/AutomationsApi.md @@ -11,6 +11,8 @@ Method | HTTP request | Description [**get_entity_automations**](AutomationsApi.md#get_entity_automations) | **GET** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Get an Automation [**patch_entity_automations**](AutomationsApi.md#patch_entity_automations) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Patch an Automation [**set_automations**](AutomationsApi.md#set_automations) | **PUT** /api/v1/layout/workspaces/{workspaceId}/automations | Set automations +[**trigger_automation**](AutomationsApi.md#trigger_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/trigger | Trigger automation. +[**trigger_existing_automation**](AutomationsApi.md#trigger_existing_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/trigger | Trigger existing automation. [**update_entity_automations**](AutomationsApi.md#update_entity_automations) | **PUT** /api/v1/entities/workspaces/{workspaceId}/automations/{objectId} | Put an Automation @@ -1009,6 +1011,225 @@ No authorization required [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **trigger_automation** +> trigger_automation(workspace_id, trigger_automation_request) + +Trigger automation. + +Trigger the automation in the request. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import automations_api +from gooddata_api_client.model.trigger_automation_request import TriggerAutomationRequest +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = automations_api.AutomationsApi(api_client) + workspace_id = "workspaceId_example" # str | + trigger_automation_request = TriggerAutomationRequest( + automation=AdHocAutomation( + analytical_dashboard=DeclarativeAnalyticalDashboardIdentifier( + id="dashboard123", + type="analyticalDashboard", + ), + description="description_example", + details={ + "key": "key_example", + }, + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], + metadata=JsonNode(), + notification_channel=DeclarativeNotificationChannelIdentifier( + id="webhook123", + type="notificationChannel", + ), + recipients=[ + DeclarativeUserIdentifier( + id="employee123", + type="user", + ), + ], + tabular_exports=[ + AutomationTabularExport( + request_payload=TabularExportRequest( + custom_override=CustomOverride( + labels={ + "key": CustomLabel( + title="title_example", + ), + }, + metrics={ + "key": CustomMetric( + format="format_example", + title="title_example", + ), + }, + ), + execution_result="ff483727196c9dc862c7fd3a5a84df55c96d61a4", + file_name="result", + format="CSV", + metadata=JsonNode(), + related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + settings=Settings( + merge_headers=True, + pdf_page_size="a4 landscape", + pdf_table_style=[ + PdfTableStyle( + properties=[ + PdfTableStyleProperty( + key="key_example", + value="value_example", + ), + ], + selector="selector_example", + ), + ], + pdf_top_left_content="Good", + pdf_top_right_content="Morning", + show_filters=False, + ), + visualization_object="f7c359bc-c230-4487-b15b-ad9685bcb537", + visualization_object_custom_filters=[ + {}, + ], + ), + ), + ], + tags=["Revenue","Sales"], + title="title_example", + visual_exports=[ + AutomationVisualExport( + request_payload=VisualExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + metadata={}, + ), + ), + ], + ), + ) # TriggerAutomationRequest | + + # example passing only required values which don't have defaults set + try: + # Trigger automation. + api_instance.trigger_automation(workspace_id, trigger_automation_request) + except gooddata_api_client.ApiException as e: + print("Exception when calling AutomationsApi->trigger_automation: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **trigger_automation_request** | [**TriggerAutomationRequest**](TriggerAutomationRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | The automation is successfully triggered. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **trigger_existing_automation** +> trigger_existing_automation(workspace_id, automation_id) + +Trigger existing automation. + +Trigger the existing automation to execute immediately. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import automations_api +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = automations_api.AutomationsApi(api_client) + workspace_id = "workspaceId_example" # str | + automation_id = "automationId_example" # str | + + # example passing only required values which don't have defaults set + try: + # Trigger existing automation. + api_instance.trigger_existing_automation(workspace_id, automation_id) + except gooddata_api_client.ApiException as e: + print("Exception when calling AutomationsApi->trigger_existing_automation: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **automation_id** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | The automation is successfully triggered. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **update_entity_automations** > JsonApiAutomationOutDocument update_entity_automations(workspace_id, object_id, json_api_automation_in_document) diff --git a/gooddata-api-client/docs/CreatedVisualizations.md b/gooddata-api-client/docs/CreatedVisualizations.md index ec75479f8..b77a480d8 100644 --- a/gooddata-api-client/docs/CreatedVisualizations.md +++ b/gooddata-api-client/docs/CreatedVisualizations.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **objects** | [**[CreatedVisualization]**](CreatedVisualization.md) | List of created visualization objects | **reasoning** | **str** | Reasoning from LLM. Description of how and why the answer was generated. | +**suggestions** | [**[Suggestion]**](Suggestion.md) | List of suggestions for next steps. Filled when no visualization was created, suggests alternatives. | **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/DeclarativeOrganizationInfo.md b/gooddata-api-client/docs/DeclarativeOrganizationInfo.md index 8408cc1a6..18d4e679f 100644 --- a/gooddata-api-client/docs/DeclarativeOrganizationInfo.md +++ b/gooddata-api-client/docs/DeclarativeOrganizationInfo.md @@ -14,7 +14,6 @@ Name | Type | Description | Notes **csp_directives** | [**[DeclarativeCspDirective]**](DeclarativeCspDirective.md) | A list of CSP directives. | [optional] **early_access** | **str** | Early access defined on level Organization | [optional] **early_access_values** | **[str]** | Early access defined on level Organization | [optional] -**jit_enabled** | **bool** | Flag to enable/disable JIT provisioning in the given organization | [optional] **oauth_client_id** | **str** | Identifier of the authentication provider | [optional] **oauth_client_secret** | **str** | Communication secret of the authentication provider (never returned back). | [optional] **oauth_custom_auth_attributes** | **{str: (str,)}** | Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute. | [optional] diff --git a/gooddata-api-client/docs/EntitiesApi.md b/gooddata-api-client/docs/EntitiesApi.md index d642e9f04..f2048ddbc 100644 --- a/gooddata-api-client/docs/EntitiesApi.md +++ b/gooddata-api-client/docs/EntitiesApi.md @@ -13243,7 +13243,6 @@ with gooddata_api_client.ApiClient() as api_client: "early_access_values_example", ], hostname="hostname_example", - jit_enabled=True, name="name_example", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", @@ -16119,7 +16118,6 @@ with gooddata_api_client.ApiClient() as api_client: "early_access_values_example", ], hostname="hostname_example", - jit_enabled=True, name="name_example", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", diff --git a/gooddata-api-client/docs/JsonApiOrganizationInAttributes.md b/gooddata-api-client/docs/JsonApiOrganizationInAttributes.md index 98a6b053a..5953982f1 100644 --- a/gooddata-api-client/docs/JsonApiOrganizationInAttributes.md +++ b/gooddata-api-client/docs/JsonApiOrganizationInAttributes.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **early_access** | **str, none_type** | The early access feature identifier. It is used to enable experimental features. Deprecated in favor of earlyAccessValues. | [optional] **early_access_values** | **[str], none_type** | The early access feature identifiers. They are used to enable experimental features. | [optional] **hostname** | **str** | | [optional] -**jit_enabled** | **bool** | Flag to enable/disable JIT provisioning in the given organization | [optional] **name** | **str, none_type** | | [optional] **oauth_client_id** | **str** | | [optional] **oauth_client_secret** | **str** | | [optional] diff --git a/gooddata-api-client/docs/JsonApiOrganizationOutAttributes.md b/gooddata-api-client/docs/JsonApiOrganizationOutAttributes.md index aee59e612..8b22cfa19 100644 --- a/gooddata-api-client/docs/JsonApiOrganizationOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiOrganizationOutAttributes.md @@ -9,7 +9,6 @@ Name | Type | Description | Notes **early_access** | **str, none_type** | The early access feature identifier. It is used to enable experimental features. Deprecated in favor of earlyAccessValues. | [optional] **early_access_values** | **[str], none_type** | The early access feature identifiers. They are used to enable experimental features. | [optional] **hostname** | **str** | | [optional] -**jit_enabled** | **bool** | Flag to enable/disable JIT provisioning in the given organization | [optional] **name** | **str, none_type** | | [optional] **oauth_client_id** | **str** | | [optional] **oauth_custom_auth_attributes** | **{str: (str,)}** | Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute. | [optional] diff --git a/gooddata-api-client/docs/LayoutApi.md b/gooddata-api-client/docs/LayoutApi.md index efe303a0c..3d15ad7ba 100644 --- a/gooddata-api-client/docs/LayoutApi.md +++ b/gooddata-api-client/docs/LayoutApi.md @@ -3230,7 +3230,6 @@ with gooddata_api_client.ApiClient() as api_client: ], hostname="alpha.com", id="Alpha corporation", - jit_enabled=True, name="Alpha corporation", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", diff --git a/gooddata-api-client/docs/MeasureGroupHeaders.md b/gooddata-api-client/docs/MeasureGroupHeaders.md index ef7c8243f..af346ee9c 100644 --- a/gooddata-api-client/docs/MeasureGroupHeaders.md +++ b/gooddata-api-client/docs/MeasureGroupHeaders.md @@ -5,8 +5,6 @@ Measure group headers ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**first** | [**MeasureHeader**](MeasureHeader.md) | | [optional] -**last** | [**MeasureHeader**](MeasureHeader.md) | | [optional] **measure_group_headers** | [**[MeasureHeader]**](MeasureHeader.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/NotificationChannelsApi.md b/gooddata-api-client/docs/NotificationChannelsApi.md index 76cb5a4a3..7aadd2daf 100644 --- a/gooddata-api-client/docs/NotificationChannelsApi.md +++ b/gooddata-api-client/docs/NotificationChannelsApi.md @@ -9,6 +9,9 @@ Method | HTTP request | Description [**get_all_entities_notification_channels**](NotificationChannelsApi.md#get_all_entities_notification_channels) | **GET** /api/v1/entities/notificationChannels | Get all Notification Channel entities [**get_entity_notification_channels**](NotificationChannelsApi.md#get_entity_notification_channels) | **GET** /api/v1/entities/notificationChannels/{id} | Get Notification Channel entity [**get_notification_channels_layout**](NotificationChannelsApi.md#get_notification_channels_layout) | **GET** /api/v1/layout/notificationChannels | Get all notification channels layout +[**get_notifications**](NotificationChannelsApi.md#get_notifications) | **GET** /api/v1/actions/notifications | Get latest notifications. +[**mark_as_read_notification**](NotificationChannelsApi.md#mark_as_read_notification) | **POST** /api/v1/actions/notifications/{notificationId}/markAsRead | Mark notification as read. +[**mark_as_read_notification_all**](NotificationChannelsApi.md#mark_as_read_notification_all) | **POST** /api/v1/actions/notifications/markAsRead | Mark all notifications as read. [**patch_entity_notification_channels**](NotificationChannelsApi.md#patch_entity_notification_channels) | **PATCH** /api/v1/entities/notificationChannels/{id} | Patch Notification Channel entity [**set_notification_channels**](NotificationChannelsApi.md#set_notification_channels) | **PUT** /api/v1/layout/notificationChannels | Set all notification channels [**test_existing_notification_channel**](NotificationChannelsApi.md#test_existing_notification_channel) | **POST** /api/v1/actions/notificationChannels/{notificationChannelId}/test | Test existing notification channel. @@ -386,6 +389,215 @@ No authorization required [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **get_notifications** +> Notifications get_notifications() + +Get latest notifications. + +Get latest in-platform notifications for the current user. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import notification_channels_api +from gooddata_api_client.model.notifications import Notifications +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = notification_channels_api.NotificationChannelsApi(api_client) + workspace_id = "workspaceId_example" # str | Workspace ID to filter notifications by. (optional) + is_read = True # bool | Filter notifications by read status. (optional) + page = "0" # str | Zero-based page index (0..N) (optional) if omitted the server will use the default value of "0" + size = "20" # str | The size of the page to be returned. (optional) if omitted the server will use the default value of "20" + meta_include = [ + "total", + ] # [str] | Additional meta information to include in the response. (optional) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Get latest notifications. + api_response = api_instance.get_notifications(workspace_id=workspace_id, is_read=is_read, page=page, size=size, meta_include=meta_include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling NotificationChannelsApi->get_notifications: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace ID to filter notifications by. | [optional] + **is_read** | **bool**| Filter notifications by read status. | [optional] + **page** | **str**| Zero-based page index (0..N) | [optional] if omitted the server will use the default value of "0" + **size** | **str**| The size of the page to be returned. | [optional] if omitted the server will use the default value of "20" + **meta_include** | **[str]**| Additional meta information to include in the response. | [optional] + +### Return type + +[**Notifications**](Notifications.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **mark_as_read_notification** +> mark_as_read_notification(notification_id) + +Mark notification as read. + +Mark in-platform notification by its ID as read. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import notification_channels_api +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = notification_channels_api.NotificationChannelsApi(api_client) + notification_id = "notificationId_example" # str | Notification ID to mark as read. + + # example passing only required values which don't have defaults set + try: + # Mark notification as read. + api_instance.mark_as_read_notification(notification_id) + except gooddata_api_client.ApiException as e: + print("Exception when calling NotificationChannelsApi->mark_as_read_notification: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **notification_id** | **str**| Notification ID to mark as read. | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | No Content | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **mark_as_read_notification_all** +> mark_as_read_notification_all() + +Mark all notifications as read. + +Mark all user in-platform notifications as read. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import notification_channels_api +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = notification_channels_api.NotificationChannelsApi(api_client) + workspace_id = "workspaceId_example" # str | Workspace ID where to mark notifications as read. (optional) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Mark all notifications as read. + api_instance.mark_as_read_notification_all(workspace_id=workspace_id) + except gooddata_api_client.ApiException as e: + print("Exception when calling NotificationChannelsApi->mark_as_read_notification_all: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace ID where to mark notifications as read. | [optional] + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | No Content | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **patch_entity_notification_channels** > JsonApiNotificationChannelOutDocument patch_entity_notification_channels(id, json_api_notification_channel_patch_document) diff --git a/gooddata-api-client/docs/OrganizationControllerApi.md b/gooddata-api-client/docs/OrganizationControllerApi.md index 14477eb36..42ba85705 100644 --- a/gooddata-api-client/docs/OrganizationControllerApi.md +++ b/gooddata-api-client/docs/OrganizationControllerApi.md @@ -298,7 +298,6 @@ with gooddata_api_client.ApiClient() as api_client: "early_access_values_example", ], hostname="hostname_example", - jit_enabled=True, name="name_example", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", @@ -494,7 +493,6 @@ with gooddata_api_client.ApiClient() as api_client: "early_access_values_example", ], hostname="hostname_example", - jit_enabled=True, name="name_example", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", diff --git a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md index 626bfbe58..1f66301eb 100644 --- a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md @@ -200,7 +200,6 @@ with gooddata_api_client.ApiClient() as api_client: ], hostname="alpha.com", id="Alpha corporation", - jit_enabled=True, name="Alpha corporation", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", diff --git a/gooddata-api-client/docs/OrganizationEntityAPIsApi.md b/gooddata-api-client/docs/OrganizationEntityAPIsApi.md index a2da7da15..3676b98a4 100644 --- a/gooddata-api-client/docs/OrganizationEntityAPIsApi.md +++ b/gooddata-api-client/docs/OrganizationEntityAPIsApi.md @@ -596,7 +596,6 @@ with gooddata_api_client.ApiClient() as api_client: "early_access_values_example", ], hostname="hostname_example", - jit_enabled=True, name="name_example", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", @@ -792,7 +791,6 @@ with gooddata_api_client.ApiClient() as api_client: "early_access_values_example", ], hostname="hostname_example", - jit_enabled=True, name="name_example", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", diff --git a/gooddata-api-client/docs/RawCustomOverride.md b/gooddata-api-client/docs/RawCustomOverride.md index bca81cb26..b7484a5e8 100644 --- a/gooddata-api-client/docs/RawCustomOverride.md +++ b/gooddata-api-client/docs/RawCustomOverride.md @@ -5,7 +5,7 @@ Custom cell value overrides (IDs will be replaced with specified values). ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**labels** | [**{str: (RawCustomLabel,)}**](RawCustomLabel.md) | Currently No-Op. Map of CustomLabels with keys used as placeholders in export result. | [optional] +**labels** | [**{str: (RawCustomLabel,)}**](RawCustomLabel.md) | Map of CustomLabels with keys used as placeholders in export result. | [optional] **metrics** | [**{str: (RawCustomMetric,)}**](RawCustomMetric.md) | Map of CustomMetrics with keys used as placeholders in export result. | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/RawExportApi.md b/gooddata-api-client/docs/RawExportApi.md index b9a574256..1e4f15b6b 100644 --- a/gooddata-api-client/docs/RawExportApi.md +++ b/gooddata-api-client/docs/RawExportApi.md @@ -79,6 +79,9 @@ with gooddata_api_client.ApiClient() as api_client: ), ], ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + ), file_name="result", format="CSV", ) # RawExportRequest | diff --git a/gooddata-api-client/docs/RawExportRequest.md b/gooddata-api-client/docs/RawExportRequest.md index 15d7dc61a..f5eb5467b 100644 --- a/gooddata-api-client/docs/RawExportRequest.md +++ b/gooddata-api-client/docs/RawExportRequest.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **file_name** | **str** | Filename of downloaded file without extension. | **format** | **str** | Requested resulting file type. | **custom_override** | [**RawCustomOverride**](RawCustomOverride.md) | | [optional] +**execution_settings** | [**ExecutionSettings**](ExecutionSettings.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/gooddata-api-client/docs/ResultDimensionHeader.md b/gooddata-api-client/docs/ResultDimensionHeader.md index 07b7ab83b..27e9cdaa0 100644 --- a/gooddata-api-client/docs/ResultDimensionHeader.md +++ b/gooddata-api-client/docs/ResultDimensionHeader.md @@ -5,8 +5,6 @@ One of the headers in a result dimension. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**first** | [**MeasureHeader**](MeasureHeader.md) | | [optional] -**last** | [**MeasureHeader**](MeasureHeader.md) | | [optional] **measure_group_headers** | [**[MeasureHeader]**](MeasureHeader.md) | | [optional] **attribute_header** | [**AttributeHeaderAttributeHeader**](AttributeHeaderAttributeHeader.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/Suggestion.md b/gooddata-api-client/docs/Suggestion.md index 926022e25..2465bb44c 100644 --- a/gooddata-api-client/docs/Suggestion.md +++ b/gooddata-api-client/docs/Suggestion.md @@ -1,6 +1,6 @@ # Suggestion -Suggestions for next steps +List of suggestions for next steps. Filled when no visualization was created, suggests alternatives. ## Properties Name | Type | Description | Notes diff --git a/gooddata-api-client/docs/TriggerAutomationRequest.md b/gooddata-api-client/docs/TriggerAutomationRequest.md new file mode 100644 index 000000000..f47b43e55 --- /dev/null +++ b/gooddata-api-client/docs/TriggerAutomationRequest.md @@ -0,0 +1,12 @@ +# TriggerAutomationRequest + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**automation** | [**AdHocAutomation**](AdHocAutomation.md) | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/gooddata_api_client/api/actions_api.py b/gooddata-api-client/gooddata_api_client/api/actions_api.py index e1196d8e5..246127474 100644 --- a/gooddata-api-client/gooddata_api_client/api/actions_api.py +++ b/gooddata-api-client/gooddata_api_client/api/actions_api.py @@ -82,6 +82,7 @@ from gooddata_api_client.model.test_destination_request import TestDestinationRequest from gooddata_api_client.model.test_request import TestRequest from gooddata_api_client.model.test_response import TestResponse +from gooddata_api_client.model.trigger_automation_request import TriggerAutomationRequest from gooddata_api_client.model.visual_export_request import VisualExportRequest from gooddata_api_client.model.workspace_permission_assignment import WorkspacePermissionAssignment from gooddata_api_client.model.workspace_user_groups import WorkspaceUserGroups @@ -4136,6 +4137,113 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.trigger_automation_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/automations/trigger', + 'operation_id': 'trigger_automation', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'trigger_automation_request', + ], + 'required': [ + 'workspace_id', + 'trigger_automation_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'trigger_automation_request': + (TriggerAutomationRequest,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + }, + 'location_map': { + 'workspace_id': 'path', + 'trigger_automation_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) + self.trigger_existing_automation_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/trigger', + 'operation_id': 'trigger_existing_automation', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'automation_id', + ], + 'required': [ + 'workspace_id', + 'automation_id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'automation_id': + (str,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'automation_id': 'automationId', + }, + 'location_map': { + 'workspace_id': 'path', + 'automation_id': 'path', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [], + }, + api_client=api_client + ) self.unsubscribe_all_automations_endpoint = _Endpoint( settings={ 'response_type': None, @@ -10304,6 +10412,180 @@ def test_notification_channel( test_destination_request return self.test_notification_channel_endpoint.call_with_http_info(**kwargs) + def trigger_automation( + self, + workspace_id, + trigger_automation_request, + **kwargs + ): + """Trigger automation. # noqa: E501 + + Trigger the automation in the request. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.trigger_automation(workspace_id, trigger_automation_request, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + trigger_automation_request (TriggerAutomationRequest): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + None + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['trigger_automation_request'] = \ + trigger_automation_request + return self.trigger_automation_endpoint.call_with_http_info(**kwargs) + + def trigger_existing_automation( + self, + workspace_id, + automation_id, + **kwargs + ): + """Trigger existing automation. # noqa: E501 + + Trigger the existing automation to execute immediately. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.trigger_existing_automation(workspace_id, automation_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + automation_id (str): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + None + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['automation_id'] = \ + automation_id + return self.trigger_existing_automation_endpoint.call_with_http_info(**kwargs) + def unsubscribe_all_automations( self, **kwargs diff --git a/gooddata-api-client/gooddata_api_client/api/automations_api.py b/gooddata-api-client/gooddata_api_client/api/automations_api.py index 2b0cc0209..2916158e1 100644 --- a/gooddata-api-client/gooddata_api_client/api/automations_api.py +++ b/gooddata-api-client/gooddata_api_client/api/automations_api.py @@ -27,6 +27,7 @@ from gooddata_api_client.model.json_api_automation_out_document import JsonApiAutomationOutDocument from gooddata_api_client.model.json_api_automation_out_list import JsonApiAutomationOutList from gooddata_api_client.model.json_api_automation_patch_document import JsonApiAutomationPatchDocument +from gooddata_api_client.model.trigger_automation_request import TriggerAutomationRequest class AutomationsApi(object): @@ -623,6 +624,113 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.trigger_automation_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/automations/trigger', + 'operation_id': 'trigger_automation', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'trigger_automation_request', + ], + 'required': [ + 'workspace_id', + 'trigger_automation_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'trigger_automation_request': + (TriggerAutomationRequest,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + }, + 'location_map': { + 'workspace_id': 'path', + 'trigger_automation_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) + self.trigger_existing_automation_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/trigger', + 'operation_id': 'trigger_existing_automation', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'automation_id', + ], + 'required': [ + 'workspace_id', + 'automation_id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'automation_id': + (str,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'automation_id': 'automationId', + }, + 'location_map': { + 'workspace_id': 'path', + 'automation_id': 'path', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [], + }, + api_client=api_client + ) self.update_entity_automations_endpoint = _Endpoint( settings={ 'response_type': (JsonApiAutomationOutDocument,), @@ -1330,6 +1438,180 @@ def set_automations( declarative_automation return self.set_automations_endpoint.call_with_http_info(**kwargs) + def trigger_automation( + self, + workspace_id, + trigger_automation_request, + **kwargs + ): + """Trigger automation. # noqa: E501 + + Trigger the automation in the request. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.trigger_automation(workspace_id, trigger_automation_request, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + trigger_automation_request (TriggerAutomationRequest): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + None + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['trigger_automation_request'] = \ + trigger_automation_request + return self.trigger_automation_endpoint.call_with_http_info(**kwargs) + + def trigger_existing_automation( + self, + workspace_id, + automation_id, + **kwargs + ): + """Trigger existing automation. # noqa: E501 + + Trigger the existing automation to execute immediately. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.trigger_existing_automation(workspace_id, automation_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + automation_id (str): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + None + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['automation_id'] = \ + automation_id + return self.trigger_existing_automation_endpoint.call_with_http_info(**kwargs) + def update_entity_automations( self, workspace_id, diff --git a/gooddata-api-client/gooddata_api_client/api/notification_channels_api.py b/gooddata-api-client/gooddata_api_client/api/notification_channels_api.py index cb88e3fa0..332a0b574 100644 --- a/gooddata-api-client/gooddata_api_client/api/notification_channels_api.py +++ b/gooddata-api-client/gooddata_api_client/api/notification_channels_api.py @@ -28,6 +28,7 @@ from gooddata_api_client.model.json_api_notification_channel_out_list import JsonApiNotificationChannelOutList from gooddata_api_client.model.json_api_notification_channel_patch_document import JsonApiNotificationChannelPatchDocument from gooddata_api_client.model.json_api_notification_channel_post_optional_id_document import JsonApiNotificationChannelPostOptionalIdDocument +from gooddata_api_client.model.notifications import Notifications from gooddata_api_client.model.test_destination_request import TestDestinationRequest from gooddata_api_client.model.test_response import TestResponse @@ -335,6 +336,184 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.get_notifications_endpoint = _Endpoint( + settings={ + 'response_type': (Notifications,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/notifications', + 'operation_id': 'get_notifications', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'is_read', + 'page', + 'size', + 'meta_include', + ], + 'required': [], + 'nullable': [ + ], + 'enum': [ + 'meta_include', + ], + 'validation': [ + 'page', + 'size', + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('page',): { + + }, + ('size',): { + + }, + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('meta_include',): { + + "TOTAL": "total", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'is_read': + (bool,), + 'page': + (str,), + 'size': + (str,), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'is_read': 'isRead', + 'page': 'page', + 'size': 'size', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'workspace_id': 'query', + 'is_read': 'query', + 'page': 'query', + 'size': 'query', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'meta_include': 'multi', + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [], + }, + api_client=api_client + ) + self.mark_as_read_notification_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/actions/notifications/{notificationId}/markAsRead', + 'operation_id': 'mark_as_read_notification', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'notification_id', + ], + 'required': [ + 'notification_id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'notification_id': + (str,), + }, + 'attribute_map': { + 'notification_id': 'notificationId', + }, + 'location_map': { + 'notification_id': 'path', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [], + }, + api_client=api_client + ) + self.mark_as_read_notification_all_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/actions/notifications/markAsRead', + 'operation_id': 'mark_as_read_notification_all', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + ], + 'required': [], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + }, + 'location_map': { + 'workspace_id': 'query', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [], + }, + api_client=api_client + ) self.patch_entity_notification_channels_endpoint = _Endpoint( settings={ 'response_type': (JsonApiNotificationChannelOutDocument,), @@ -1033,6 +1212,251 @@ def get_notification_channels_layout( kwargs['_request_auths'] = kwargs.get('_request_auths', None) return self.get_notification_channels_layout_endpoint.call_with_http_info(**kwargs) + def get_notifications( + self, + **kwargs + ): + """Get latest notifications. # noqa: E501 + + Get latest in-platform notifications for the current user. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.get_notifications(async_req=True) + >>> result = thread.get() + + + Keyword Args: + workspace_id (str): Workspace ID to filter notifications by.. [optional] + is_read (bool): Filter notifications by read status.. [optional] + page (str): Zero-based page index (0..N). [optional] if omitted the server will use the default value of "0" + size (str): The size of the page to be returned.. [optional] if omitted the server will use the default value of "20" + meta_include ([str]): Additional meta information to include in the response.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + Notifications + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + return self.get_notifications_endpoint.call_with_http_info(**kwargs) + + def mark_as_read_notification( + self, + notification_id, + **kwargs + ): + """Mark notification as read. # noqa: E501 + + Mark in-platform notification by its ID as read. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.mark_as_read_notification(notification_id, async_req=True) + >>> result = thread.get() + + Args: + notification_id (str): Notification ID to mark as read. + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + None + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['notification_id'] = \ + notification_id + return self.mark_as_read_notification_endpoint.call_with_http_info(**kwargs) + + def mark_as_read_notification_all( + self, + **kwargs + ): + """Mark all notifications as read. # noqa: E501 + + Mark all user in-platform notifications as read. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.mark_as_read_notification_all(async_req=True) + >>> result = thread.get() + + + Keyword Args: + workspace_id (str): Workspace ID where to mark notifications as read.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + None + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + return self.mark_as_read_notification_all_endpoint.call_with_http_info(**kwargs) + def patch_entity_notification_channels( self, id, diff --git a/gooddata-api-client/gooddata_api_client/model/ad_hoc_automation.py b/gooddata-api-client/gooddata_api_client/model/ad_hoc_automation.py new file mode 100644 index 000000000..f6c470b3a --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/ad_hoc_automation.py @@ -0,0 +1,340 @@ +""" + 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.automation_external_recipient import AutomationExternalRecipient + from gooddata_api_client.model.automation_tabular_export import AutomationTabularExport + from gooddata_api_client.model.automation_visual_export import AutomationVisualExport + from gooddata_api_client.model.declarative_analytical_dashboard_identifier import DeclarativeAnalyticalDashboardIdentifier + from gooddata_api_client.model.declarative_notification_channel_identifier import DeclarativeNotificationChannelIdentifier + from gooddata_api_client.model.declarative_user_identifier import DeclarativeUserIdentifier + from gooddata_api_client.model.json_node import JsonNode + globals()['AutomationExternalRecipient'] = AutomationExternalRecipient + globals()['AutomationTabularExport'] = AutomationTabularExport + globals()['AutomationVisualExport'] = AutomationVisualExport + globals()['DeclarativeAnalyticalDashboardIdentifier'] = DeclarativeAnalyticalDashboardIdentifier + globals()['DeclarativeNotificationChannelIdentifier'] = DeclarativeNotificationChannelIdentifier + globals()['DeclarativeUserIdentifier'] = DeclarativeUserIdentifier + globals()['JsonNode'] = JsonNode + + +class AdHocAutomation(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 = { + ('description',): { + 'max_length': 255, + }, + ('details',): { + }, + ('external_recipients',): { + }, + ('recipients',): { + }, + ('tabular_exports',): { + }, + ('tags',): { + }, + ('title',): { + 'max_length': 255, + }, + ('visual_exports',): { + }, + } + + @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 { + 'analytical_dashboard': (DeclarativeAnalyticalDashboardIdentifier,), # noqa: E501 + 'description': (str,), # noqa: E501 + 'details': ({str: (str,)},), # noqa: E501 + 'external_recipients': ([AutomationExternalRecipient],), # noqa: E501 + 'metadata': (JsonNode,), # noqa: E501 + 'notification_channel': (DeclarativeNotificationChannelIdentifier,), # noqa: E501 + 'recipients': ([DeclarativeUserIdentifier],), # noqa: E501 + 'tabular_exports': ([AutomationTabularExport],), # noqa: E501 + 'tags': ([str],), # noqa: E501 + 'title': (str,), # noqa: E501 + 'visual_exports': ([AutomationVisualExport],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'analytical_dashboard': 'analyticalDashboard', # noqa: E501 + 'description': 'description', # noqa: E501 + 'details': 'details', # noqa: E501 + 'external_recipients': 'externalRecipients', # noqa: E501 + 'metadata': 'metadata', # noqa: E501 + 'notification_channel': 'notificationChannel', # noqa: E501 + 'recipients': 'recipients', # noqa: E501 + 'tabular_exports': 'tabularExports', # noqa: E501 + 'tags': 'tags', # noqa: E501 + 'title': 'title', # noqa: E501 + 'visual_exports': 'visualExports', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """AdHocAutomation - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + analytical_dashboard (DeclarativeAnalyticalDashboardIdentifier): [optional] # noqa: E501 + description (str): [optional] # noqa: E501 + details ({str: (str,)}): Additional details to be included in the automated message.. [optional] # noqa: E501 + external_recipients ([AutomationExternalRecipient]): External recipients of the automation action results.. [optional] # noqa: E501 + metadata (JsonNode): [optional] # noqa: E501 + notification_channel (DeclarativeNotificationChannelIdentifier): [optional] # noqa: E501 + recipients ([DeclarativeUserIdentifier]): [optional] # noqa: E501 + tabular_exports ([AutomationTabularExport]): [optional] # noqa: E501 + tags ([str]): A list of tags.. [optional] # noqa: E501 + title (str): [optional] # noqa: E501 + visual_exports ([AutomationVisualExport]): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """AdHocAutomation - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + analytical_dashboard (DeclarativeAnalyticalDashboardIdentifier): [optional] # noqa: E501 + description (str): [optional] # noqa: E501 + details ({str: (str,)}): Additional details to be included in the automated message.. [optional] # noqa: E501 + external_recipients ([AutomationExternalRecipient]): External recipients of the automation action results.. [optional] # noqa: E501 + metadata (JsonNode): [optional] # noqa: E501 + notification_channel (DeclarativeNotificationChannelIdentifier): [optional] # noqa: E501 + recipients ([DeclarativeUserIdentifier]): [optional] # noqa: E501 + tabular_exports ([AutomationTabularExport]): [optional] # noqa: E501 + tags ([str]): A list of tags.. [optional] # noqa: E501 + title (str): [optional] # noqa: E501 + visual_exports ([AutomationVisualExport]): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/created_visualizations.py b/gooddata-api-client/gooddata_api_client/model/created_visualizations.py index 2933f7982..6fd2c60b4 100644 --- a/gooddata-api-client/gooddata_api_client/model/created_visualizations.py +++ b/gooddata-api-client/gooddata_api_client/model/created_visualizations.py @@ -32,7 +32,9 @@ def lazy_import(): from gooddata_api_client.model.created_visualization import CreatedVisualization + from gooddata_api_client.model.suggestion import Suggestion globals()['CreatedVisualization'] = CreatedVisualization + globals()['Suggestion'] = Suggestion class CreatedVisualizations(ModelNormal): @@ -90,6 +92,7 @@ def openapi_types(): return { 'objects': ([CreatedVisualization],), # noqa: E501 'reasoning': (str,), # noqa: E501 + 'suggestions': ([Suggestion],), # noqa: E501 } @cached_property @@ -100,6 +103,7 @@ def discriminator(): attribute_map = { 'objects': 'objects', # noqa: E501 'reasoning': 'reasoning', # noqa: E501 + 'suggestions': 'suggestions', # noqa: E501 } read_only_vars = { @@ -109,12 +113,13 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, objects, reasoning, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, objects, reasoning, suggestions, *args, **kwargs): # noqa: E501 """CreatedVisualizations - a model defined in OpenAPI Args: objects ([CreatedVisualization]): List of created visualization objects reasoning (str): Reasoning from LLM. Description of how and why the answer was generated. + suggestions ([Suggestion]): List of suggestions for next steps. Filled when no visualization was created, suggests alternatives. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -180,6 +185,7 @@ def _from_openapi_data(cls, objects, reasoning, *args, **kwargs): # noqa: E501 self.objects = objects self.reasoning = reasoning + self.suggestions = suggestions for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -200,12 +206,13 @@ def _from_openapi_data(cls, objects, reasoning, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, objects, reasoning, *args, **kwargs): # noqa: E501 + def __init__(self, objects, reasoning, suggestions, *args, **kwargs): # noqa: E501 """CreatedVisualizations - a model defined in OpenAPI Args: objects ([CreatedVisualization]): List of created visualization objects reasoning (str): Reasoning from LLM. Description of how and why the answer was generated. + suggestions ([Suggestion]): List of suggestions for next steps. Filled when no visualization was created, suggests alternatives. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -269,6 +276,7 @@ def __init__(self, objects, reasoning, *args, **kwargs): # noqa: E501 self.objects = objects self.reasoning = reasoning + self.suggestions = suggestions 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/declarative_organization_info.py b/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py index 0eaf0c4f6..4da9cb810 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py @@ -138,7 +138,6 @@ def openapi_types(): 'csp_directives': ([DeclarativeCspDirective],), # noqa: E501 'early_access': (str,), # noqa: E501 'early_access_values': ([str],), # noqa: E501 - 'jit_enabled': (bool,), # noqa: E501 'oauth_client_id': (str,), # noqa: E501 'oauth_client_secret': (str,), # noqa: E501 'oauth_custom_auth_attributes': ({str: (str,)},), # noqa: E501 @@ -164,7 +163,6 @@ def discriminator(): 'csp_directives': 'cspDirectives', # noqa: E501 'early_access': 'earlyAccess', # noqa: E501 'early_access_values': 'earlyAccessValues', # noqa: E501 - 'jit_enabled': 'jitEnabled', # noqa: E501 'oauth_client_id': 'oauthClientId', # noqa: E501 'oauth_client_secret': 'oauthClientSecret', # noqa: E501 'oauth_custom_auth_attributes': 'oauthCustomAuthAttributes', # noqa: E501 @@ -227,7 +225,6 @@ def _from_openapi_data(cls, hostname, id, name, permissions, *args, **kwargs): csp_directives ([DeclarativeCspDirective]): A list of CSP directives.. [optional] # noqa: E501 early_access (str): Early access defined on level Organization. [optional] # noqa: E501 early_access_values ([str]): Early access defined on level Organization. [optional] # noqa: E501 - jit_enabled (bool): Flag to enable/disable JIT provisioning in the given organization. [optional] # noqa: E501 oauth_client_id (str): Identifier of the authentication provider. [optional] # noqa: E501 oauth_client_secret (str): Communication secret of the authentication provider (never returned back).. [optional] # noqa: E501 oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 @@ -336,7 +333,6 @@ def __init__(self, hostname, id, name, permissions, *args, **kwargs): # noqa: E csp_directives ([DeclarativeCspDirective]): A list of CSP directives.. [optional] # noqa: E501 early_access (str): Early access defined on level Organization. [optional] # noqa: E501 early_access_values ([str]): Early access defined on level Organization. [optional] # noqa: E501 - jit_enabled (bool): Flag to enable/disable JIT provisioning in the given organization. [optional] # noqa: E501 oauth_client_id (str): Identifier of the authentication provider. [optional] # noqa: E501 oauth_client_secret (str): Communication secret of the authentication provider (never returned back).. [optional] # noqa: E501 oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_attributes.py index f5b0e3356..48bb809db 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_attributes.py @@ -112,7 +112,6 @@ def openapi_types(): 'early_access': (str, none_type,), # noqa: E501 'early_access_values': ([str], none_type,), # noqa: E501 'hostname': (str,), # noqa: E501 - 'jit_enabled': (bool,), # noqa: E501 'name': (str, none_type,), # noqa: E501 'oauth_client_id': (str,), # noqa: E501 'oauth_client_secret': (str,), # noqa: E501 @@ -132,7 +131,6 @@ def discriminator(): 'early_access': 'earlyAccess', # noqa: E501 'early_access_values': 'earlyAccessValues', # noqa: E501 'hostname': 'hostname', # noqa: E501 - 'jit_enabled': 'jitEnabled', # noqa: E501 'name': 'name', # noqa: E501 'oauth_client_id': 'oauthClientId', # noqa: E501 'oauth_client_secret': 'oauthClientSecret', # noqa: E501 @@ -187,7 +185,6 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 early_access (str, none_type): The early access feature identifier. It is used to enable experimental features. Deprecated in favor of earlyAccessValues.. [optional] # noqa: E501 early_access_values ([str], none_type): The early access feature identifiers. They are used to enable experimental features.. [optional] # noqa: E501 hostname (str): [optional] # noqa: E501 - jit_enabled (bool): Flag to enable/disable JIT provisioning in the given organization. [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 oauth_client_id (str): [optional] # noqa: E501 oauth_client_secret (str): [optional] # noqa: E501 @@ -284,7 +281,6 @@ def __init__(self, *args, **kwargs): # noqa: E501 early_access (str, none_type): The early access feature identifier. It is used to enable experimental features. Deprecated in favor of earlyAccessValues.. [optional] # noqa: E501 early_access_values ([str], none_type): The early access feature identifiers. They are used to enable experimental features.. [optional] # noqa: E501 hostname (str): [optional] # noqa: E501 - jit_enabled (bool): Flag to enable/disable JIT provisioning in the given organization. [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 oauth_client_id (str): [optional] # noqa: E501 oauth_client_secret (str): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_attributes.py index d257dee8d..a8d4d8153 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_attributes.py @@ -116,7 +116,6 @@ def openapi_types(): 'early_access': (str, none_type,), # noqa: E501 'early_access_values': ([str], none_type,), # noqa: E501 'hostname': (str,), # noqa: E501 - 'jit_enabled': (bool,), # noqa: E501 'name': (str, none_type,), # noqa: E501 'oauth_client_id': (str,), # noqa: E501 'oauth_custom_auth_attributes': ({str: (str,)},), # noqa: E501 @@ -136,7 +135,6 @@ def discriminator(): 'early_access': 'earlyAccess', # noqa: E501 'early_access_values': 'earlyAccessValues', # noqa: E501 'hostname': 'hostname', # noqa: E501 - 'jit_enabled': 'jitEnabled', # noqa: E501 'name': 'name', # noqa: E501 'oauth_client_id': 'oauthClientId', # noqa: E501 'oauth_custom_auth_attributes': 'oauthCustomAuthAttributes', # noqa: E501 @@ -191,7 +189,6 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 early_access (str, none_type): The early access feature identifier. It is used to enable experimental features. Deprecated in favor of earlyAccessValues.. [optional] # noqa: E501 early_access_values ([str], none_type): The early access feature identifiers. They are used to enable experimental features.. [optional] # noqa: E501 hostname (str): [optional] # noqa: E501 - jit_enabled (bool): Flag to enable/disable JIT provisioning in the given organization. [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 oauth_client_id (str): [optional] # noqa: E501 oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 @@ -288,7 +285,6 @@ def __init__(self, *args, **kwargs): # noqa: E501 early_access (str, none_type): The early access feature identifier. It is used to enable experimental features. Deprecated in favor of earlyAccessValues.. [optional] # noqa: E501 early_access_values ([str], none_type): The early access feature identifiers. They are used to enable experimental features.. [optional] # noqa: E501 hostname (str): [optional] # noqa: E501 - jit_enabled (bool): Flag to enable/disable JIT provisioning in the given organization. [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 oauth_client_id (str): [optional] # noqa: E501 oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/measure_group_headers.py b/gooddata-api-client/gooddata_api_client/model/measure_group_headers.py index 9f7f1e4b2..9bbe6d2fa 100644 --- a/gooddata-api-client/gooddata_api_client/model/measure_group_headers.py +++ b/gooddata-api-client/gooddata_api_client/model/measure_group_headers.py @@ -88,8 +88,6 @@ def openapi_types(): """ lazy_import() return { - 'first': (MeasureHeader,), # noqa: E501 - 'last': (MeasureHeader,), # noqa: E501 'measure_group_headers': ([MeasureHeader],), # noqa: E501 } @@ -99,8 +97,6 @@ def discriminator(): attribute_map = { - 'first': 'first', # noqa: E501 - 'last': 'last', # noqa: E501 'measure_group_headers': 'measureGroupHeaders', # noqa: E501 } @@ -145,8 +141,6 @@ 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,) - first (MeasureHeader): [optional] # noqa: E501 - last (MeasureHeader): [optional] # noqa: E501 measure_group_headers ([MeasureHeader]): [optional] # noqa: E501 """ @@ -233,8 +227,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,) - first (MeasureHeader): [optional] # noqa: E501 - last (MeasureHeader): [optional] # noqa: E501 measure_group_headers ([MeasureHeader]): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/raw_custom_override.py b/gooddata-api-client/gooddata_api_client/model/raw_custom_override.py index e9f89023b..f6a62320a 100644 --- a/gooddata-api-client/gooddata_api_client/model/raw_custom_override.py +++ b/gooddata-api-client/gooddata_api_client/model/raw_custom_override.py @@ -145,7 +145,7 @@ 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,) - labels ({str: (RawCustomLabel,)}): Currently No-Op. Map of CustomLabels with keys used as placeholders in export result.. [optional] # noqa: E501 + labels ({str: (RawCustomLabel,)}): Map of CustomLabels with keys used as placeholders in export result.. [optional] # noqa: E501 metrics ({str: (RawCustomMetric,)}): Map of CustomMetrics with keys used as placeholders in export result.. [optional] # noqa: E501 """ @@ -232,7 +232,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - labels ({str: (RawCustomLabel,)}): Currently No-Op. Map of CustomLabels with keys used as placeholders in export result.. [optional] # noqa: E501 + labels ({str: (RawCustomLabel,)}): Map of CustomLabels with keys used as placeholders in export result.. [optional] # noqa: E501 metrics ({str: (RawCustomMetric,)}): Map of CustomMetrics with keys used as placeholders in export result.. [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/raw_export_request.py b/gooddata-api-client/gooddata_api_client/model/raw_export_request.py index 7faf8d3a7..a88a0cba4 100644 --- a/gooddata-api-client/gooddata_api_client/model/raw_export_request.py +++ b/gooddata-api-client/gooddata_api_client/model/raw_export_request.py @@ -32,8 +32,10 @@ def lazy_import(): from gooddata_api_client.model.afm import AFM + from gooddata_api_client.model.execution_settings import ExecutionSettings from gooddata_api_client.model.raw_custom_override import RawCustomOverride globals()['AFM'] = AFM + globals()['ExecutionSettings'] = ExecutionSettings globals()['RawCustomOverride'] = RawCustomOverride @@ -99,6 +101,7 @@ def openapi_types(): 'file_name': (str,), # noqa: E501 'format': (str,), # noqa: E501 'custom_override': (RawCustomOverride,), # noqa: E501 + 'execution_settings': (ExecutionSettings,), # noqa: E501 } @cached_property @@ -111,6 +114,7 @@ def discriminator(): 'file_name': 'fileName', # noqa: E501 'format': 'format', # noqa: E501 'custom_override': 'customOverride', # noqa: E501 + 'execution_settings': 'executionSettings', # noqa: E501 } read_only_vars = { @@ -160,6 +164,7 @@ def _from_openapi_data(cls, execution, file_name, format, *args, **kwargs): # n through its discriminator because we passed in _visited_composed_classes = (Animal,) custom_override (RawCustomOverride): [optional] # noqa: E501 + execution_settings (ExecutionSettings): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -254,6 +259,7 @@ def __init__(self, execution, file_name, format, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) custom_override (RawCustomOverride): [optional] # noqa: E501 + execution_settings (ExecutionSettings): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/result_dimension_header.py b/gooddata-api-client/gooddata_api_client/model/result_dimension_header.py index a4769ebb4..8d65a7d7a 100644 --- a/gooddata-api-client/gooddata_api_client/model/result_dimension_header.py +++ b/gooddata-api-client/gooddata_api_client/model/result_dimension_header.py @@ -94,8 +94,6 @@ def openapi_types(): """ lazy_import() return { - 'first': (MeasureHeader,), # noqa: E501 - 'last': (MeasureHeader,), # noqa: E501 'measure_group_headers': ([MeasureHeader],), # noqa: E501 'attribute_header': (AttributeHeaderAttributeHeader,), # noqa: E501 } @@ -106,8 +104,6 @@ def discriminator(): attribute_map = { - 'first': 'first', # noqa: E501 - 'last': 'last', # noqa: E501 'measure_group_headers': 'measureGroupHeaders', # noqa: E501 'attribute_header': 'attributeHeader', # noqa: E501 } @@ -151,8 +147,6 @@ 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,) - first (MeasureHeader): [optional] # noqa: E501 - last (MeasureHeader): [optional] # noqa: E501 measure_group_headers ([MeasureHeader]): [optional] # noqa: E501 attribute_header (AttributeHeaderAttributeHeader): [optional] # noqa: E501 """ @@ -258,8 +252,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,) - first (MeasureHeader): [optional] # noqa: E501 - last (MeasureHeader): [optional] # noqa: E501 measure_group_headers ([MeasureHeader]): [optional] # noqa: E501 attribute_header (AttributeHeaderAttributeHeader): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/trigger_automation_request.py b/gooddata-api-client/gooddata_api_client/model/trigger_automation_request.py new file mode 100644 index 000000000..c44427d88 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/trigger_automation_request.py @@ -0,0 +1,276 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.ad_hoc_automation import AdHocAutomation + globals()['AdHocAutomation'] = AdHocAutomation + + +class TriggerAutomationRequest(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 { + 'automation': (AdHocAutomation,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'automation': 'automation', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, automation, *args, **kwargs): # noqa: E501 + """TriggerAutomationRequest - a model defined in OpenAPI + + Args: + automation (AdHocAutomation): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.automation = automation + 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, automation, *args, **kwargs): # noqa: E501 + """TriggerAutomationRequest - a model defined in OpenAPI + + Args: + automation (AdHocAutomation): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.automation = automation + 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/models/__init__.py b/gooddata-api-client/gooddata_api_client/models/__init__.py index a8feeeb70..1faf9824a 100644 --- a/gooddata-api-client/gooddata_api_client/models/__init__.py +++ b/gooddata-api-client/gooddata_api_client/models/__init__.py @@ -14,6 +14,7 @@ from gooddata_api_client.model.absolute_date_filter_absolute_date_filter import AbsoluteDateFilterAbsoluteDateFilter from gooddata_api_client.model.abstract_measure_value_filter import AbstractMeasureValueFilter from gooddata_api_client.model.active_object_identification import ActiveObjectIdentification +from gooddata_api_client.model.ad_hoc_automation import AdHocAutomation from gooddata_api_client.model.afm_execution import AfmExecution from gooddata_api_client.model.afm_execution_response import AfmExecutionResponse from gooddata_api_client.model.afm_identifier import AfmIdentifier @@ -835,6 +836,7 @@ from gooddata_api_client.model.total_dimension import TotalDimension from gooddata_api_client.model.total_execution_result_header import TotalExecutionResultHeader from gooddata_api_client.model.total_result_header import TotalResultHeader +from gooddata_api_client.model.trigger_automation_request import TriggerAutomationRequest from gooddata_api_client.model.user_assignee import UserAssignee from gooddata_api_client.model.user_context import UserContext from gooddata_api_client.model.user_group_assignee import UserGroupAssignee diff --git a/schemas/gooddata-afm-client.json b/schemas/gooddata-afm-client.json index 23238bbda..ff0b62a4a 100644 --- a/schemas/gooddata-afm-client.json +++ b/schemas/gooddata-afm-client.json @@ -1132,11 +1132,19 @@ "reasoning": { "description": "Reasoning from LLM. Description of how and why the answer was generated.", "type": "string" + }, + "suggestions": { + "description": "List of suggestions for next steps. Filled when no visualization was created, suggests alternatives.", + "items": { + "$ref": "#/components/schemas/Suggestion" + }, + "type": "array" } }, "required": [ "objects", - "reasoning" + "reasoning", + "suggestions" ], "type": "object" }, @@ -2124,12 +2132,6 @@ "MeasureGroupHeaders": { "description": "Measure group headers", "properties": { - "first": { - "$ref": "#/components/schemas/MeasureHeader" - }, - "last": { - "$ref": "#/components/schemas/MeasureHeader" - }, "measureGroupHeaders": { "items": { "$ref": "#/components/schemas/MeasureHeader" @@ -3120,7 +3122,7 @@ "type": "object" }, "Suggestion": { - "description": "Suggestions for next steps", + "description": "List of suggestions for next steps. Filled when no visualization was created, suggests alternatives.", "properties": { "label": { "description": "Suggestion button label", diff --git a/schemas/gooddata-api-client.json b/schemas/gooddata-api-client.json index 4e1c73e23..f92208e08 100644 --- a/schemas/gooddata-api-client.json +++ b/schemas/gooddata-api-client.json @@ -160,6 +160,79 @@ ], "type": "object" }, + "AdHocAutomation": { + "properties": { + "analyticalDashboard": { + "$ref": "#/components/schemas/DeclarativeAnalyticalDashboardIdentifier" + }, + "description": { + "maxLength": 255, + "type": "string" + }, + "details": { + "additionalProperties": { + "description": "Additional details to be included in the automated message.", + "maxLength": 10000, + "type": "string" + }, + "description": "Additional details to be included in the automated message.", + "maxLength": 10000, + "type": "object" + }, + "externalRecipients": { + "description": "External recipients of the automation action results.", + "items": { + "$ref": "#/components/schemas/AutomationExternalRecipient" + }, + "type": "array", + "uniqueItems": true + }, + "metadata": { + "$ref": "#/components/schemas/JsonNode" + }, + "notificationChannel": { + "$ref": "#/components/schemas/DeclarativeNotificationChannelIdentifier" + }, + "recipients": { + "items": { + "$ref": "#/components/schemas/DeclarativeUserIdentifier" + }, + "type": "array", + "uniqueItems": true + }, + "tabularExports": { + "items": { + "$ref": "#/components/schemas/AutomationTabularExport" + }, + "type": "array", + "uniqueItems": true + }, + "tags": { + "description": "A list of tags.", + "example": [ + "Revenue", + "Sales" + ], + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "maxLength": 255, + "type": "string" + }, + "visualExports": { + "items": { + "$ref": "#/components/schemas/AutomationVisualExport" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, "AfmExecution": { "properties": { "execution": { @@ -1789,11 +1862,19 @@ "reasoning": { "description": "Reasoning from LLM. Description of how and why the answer was generated.", "type": "string" + }, + "suggestions": { + "description": "List of suggestions for next steps. Filled when no visualization was created, suggests alternatives.", + "items": { + "$ref": "#/components/schemas/Suggestion" + }, + "type": "array" } }, "required": [ "objects", - "reasoning" + "reasoning", + "suggestions" ], "type": "object" }, @@ -4040,10 +4121,6 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, - "jitEnabled": { - "description": "Flag to enable/disable JIT provisioning in the given organization", - "type": "boolean" - }, "name": { "description": "Formal name of the organization.", "example": "Alpha corporation", @@ -14758,10 +14835,6 @@ "maxLength": 255, "type": "string" }, - "jitEnabled": { - "description": "Flag to enable/disable JIT provisioning in the given organization", - "type": "boolean" - }, "name": { "maxLength": 255, "nullable": true, @@ -14882,10 +14955,6 @@ "maxLength": 255, "type": "string" }, - "jitEnabled": { - "description": "Flag to enable/disable JIT provisioning in the given organization", - "type": "boolean" - }, "name": { "maxLength": 255, "nullable": true, @@ -15049,10 +15118,6 @@ "maxLength": 255, "type": "string" }, - "jitEnabled": { - "description": "Flag to enable/disable JIT provisioning in the given organization", - "type": "boolean" - }, "name": { "maxLength": 255, "nullable": true, @@ -19177,12 +19242,6 @@ "MeasureGroupHeaders": { "description": "Measure group headers", "properties": { - "first": { - "$ref": "#/components/schemas/MeasureHeader" - }, - "last": { - "$ref": "#/components/schemas/MeasureHeader" - }, "measureGroupHeaders": { "items": { "$ref": "#/components/schemas/MeasureHeader" @@ -20176,7 +20235,7 @@ "additionalProperties": { "$ref": "#/components/schemas/RawCustomLabel" }, - "description": "Currently No-Op. Map of CustomLabels with keys used as placeholders in export result.", + "description": "Map of CustomLabels with keys used as placeholders in export result.", "type": "object" }, "metrics": { @@ -20198,6 +20257,9 @@ "execution": { "$ref": "#/components/schemas/AFM" }, + "executionSettings": { + "$ref": "#/components/schemas/ExecutionSettings" + }, "fileName": { "description": "Filename of downloaded file without extension.", "example": "result", @@ -21375,7 +21437,7 @@ "type": "object" }, "Suggestion": { - "description": "Suggestions for next steps", + "description": "List of suggestions for next steps. Filled when no visualization was created, suggests alternatives.", "properties": { "label": { "description": "Suggestion button label", @@ -21835,6 +21897,17 @@ ], "type": "object" }, + "TriggerAutomationRequest": { + "properties": { + "automation": { + "$ref": "#/components/schemas/AdHocAutomation" + } + }, + "required": [ + "automation" + ], + "type": "object" + }, "UserAssignee": { "description": "List of users", "properties": { @@ -23456,6 +23529,7 @@ }, "summary": "Get latest notifications.", "tags": [ + "Notification Channels", "actions" ] } @@ -23483,6 +23557,7 @@ }, "summary": "Mark all notifications as read.", "tags": [ + "Notification Channels", "actions" ] } @@ -23509,6 +23584,7 @@ }, "summary": "Mark notification as read.", "tags": [ + "Notification Channels", "actions" ] } @@ -24534,6 +24610,42 @@ ] } }, + "/api/v1/actions/workspaces/{workspaceId}/automations/trigger": { + "post": { + "description": "Trigger the automation in the request.", + "operationId": "triggerAutomation", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggerAutomationRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "The automation is successfully triggered." + } + }, + "summary": "Trigger automation.", + "tags": [ + "Automations", + "actions" + ] + } + }, "/api/v1/actions/workspaces/{workspaceId}/automations/unsubscribe": { "delete": { "operationId": "unsubscribeWorkspaceAutomations", @@ -24559,6 +24671,40 @@ ] } }, + "/api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/trigger": { + "post": { + "description": "Trigger the existing automation to execute immediately.", + "operationId": "triggerExistingAutomation", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "automationId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "The automation is successfully triggered." + } + }, + "summary": "Trigger existing automation.", + "tags": [ + "Automations", + "actions" + ] + } + }, "/api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/unsubscribe": { "delete": { "operationId": "unsubscribeAutomation", diff --git a/schemas/gooddata-automation-client.json b/schemas/gooddata-automation-client.json index 129bdccec..a58322692 100644 --- a/schemas/gooddata-automation-client.json +++ b/schemas/gooddata-automation-client.json @@ -1,6 +1,79 @@ { "components": { "schemas": { + "AdHocAutomation": { + "properties": { + "analyticalDashboard": { + "$ref": "#/components/schemas/DeclarativeAnalyticalDashboardIdentifier" + }, + "description": { + "maxLength": 255, + "type": "string" + }, + "details": { + "additionalProperties": { + "description": "Additional details to be included in the automated message.", + "maxLength": 10000, + "type": "string" + }, + "description": "Additional details to be included in the automated message.", + "maxLength": 10000, + "type": "object" + }, + "externalRecipients": { + "description": "External recipients of the automation action results.", + "items": { + "$ref": "#/components/schemas/AutomationExternalRecipient" + }, + "type": "array", + "uniqueItems": true + }, + "metadata": { + "$ref": "#/components/schemas/JsonNode" + }, + "notificationChannel": { + "$ref": "#/components/schemas/DeclarativeNotificationChannelIdentifier" + }, + "recipients": { + "items": { + "$ref": "#/components/schemas/DeclarativeUserIdentifier" + }, + "type": "array", + "uniqueItems": true + }, + "tabularExports": { + "items": { + "$ref": "#/components/schemas/AutomationTabularExport" + }, + "type": "array", + "uniqueItems": true + }, + "tags": { + "description": "A list of tags.", + "example": [ + "Revenue", + "Sales" + ], + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "maxLength": 255, + "type": "string" + }, + "visualExports": { + "items": { + "$ref": "#/components/schemas/AutomationVisualExport" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, "AlertDescription": { "properties": { "attribute": { @@ -88,6 +161,19 @@ }, "type": "object" }, + "AutomationExternalRecipient": { + "properties": { + "email": { + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, "AutomationNotification": { "allOf": [ { @@ -107,6 +193,151 @@ ], "type": "object" }, + "AutomationTabularExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/TabularExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "AutomationVisualExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/VisualExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "CustomLabel": { + "description": "Custom label object override.", + "properties": { + "title": { + "description": "Override value.", + "type": "string" + } + }, + "required": [ + "title" + ], + "type": "object" + }, + "CustomMetric": { + "description": "Custom metric object override.", + "properties": { + "format": { + "description": "Format override.", + "type": "string" + }, + "title": { + "description": "Metric title override.", + "type": "string" + } + }, + "required": [ + "format", + "title" + ], + "type": "object" + }, + "CustomOverride": { + "description": "Custom cell value overrides (IDs will be replaced with specified values).", + "properties": { + "labels": { + "additionalProperties": { + "$ref": "#/components/schemas/CustomLabel" + }, + "description": "Map of CustomLabels with keys used as placeholders in document.", + "type": "object" + }, + "metrics": { + "additionalProperties": { + "$ref": "#/components/schemas/CustomMetric" + }, + "description": "Map of CustomMetrics with keys used as placeholders in document.", + "type": "object" + } + }, + "type": "object" + }, + "DeclarativeAnalyticalDashboardIdentifier": { + "description": "An analytical dashboard identifier.", + "properties": { + "id": { + "description": "Identifier of the analytical dashboard.", + "example": "dashboard123", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "A type.", + "enum": [ + "analyticalDashboard" + ], + "example": "analyticalDashboard", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "DeclarativeNotificationChannelIdentifier": { + "description": "A notification channel identifier.", + "properties": { + "id": { + "description": "Notification channel identifier.", + "example": "webhook123", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "A type.", + "enum": [ + "notificationChannel" + ], + "example": "notificationChannel", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "DeclarativeUserIdentifier": { + "description": "A user identifier.", + "properties": { + "id": { + "description": "User identifier.", + "example": "employee123", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "A type.", + "enum": [ + "user" + ], + "example": "user", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, "DefaultSmtp": { "description": "Default SMTP destination for notifications.", "properties": { @@ -184,6 +415,13 @@ ], "type": "object" }, + "JsonNode": { + "description": "Metadata definition in free-form JSON format.", + "example": {}, + "maxLength": 15000, + "nullable": true, + "type": "object" + }, "MetricRecord": { "properties": { "formattedValue": { @@ -322,6 +560,104 @@ ], "type": "object" }, + "PdfTableStyle": { + "description": "Custom CSS styles for the table. (PDF, HTML)", + "example": [ + { + "properties": [ + { + "key": "font-size", + "value": "30px" + } + ], + "selector": "th" + } + ], + "properties": { + "properties": { + "description": "List of CSS properties.", + "items": { + "$ref": "#/components/schemas/PdfTableStyleProperty" + }, + "type": "array" + }, + "selector": { + "description": "CSS selector where to apply given properties.", + "type": "string" + } + }, + "required": [ + "selector" + ], + "type": "object" + }, + "PdfTableStyleProperty": { + "description": "CSS property.", + "properties": { + "key": { + "description": "CSS property key.", + "type": "string" + }, + "value": { + "description": "CSS property value.", + "type": "string" + } + }, + "required": [ + "key", + "value" + ], + "type": "object" + }, + "Settings": { + "description": "Additional settings.", + "properties": { + "mergeHeaders": { + "description": "Merge equal headers in neighbouring cells. (XLSX)", + "example": true, + "type": "boolean" + }, + "pdfPageSize": { + "description": "Page size and orientation. (PDF)", + "example": "a4 landscape", + "type": "string" + }, + "pdfTableStyle": { + "description": "Custom CSS styles for the table. (PDF, HTML)", + "example": [ + { + "properties": [ + { + "key": "font-size", + "value": "30px" + } + ], + "selector": "th" + } + ], + "items": { + "$ref": "#/components/schemas/PdfTableStyle" + }, + "type": "array" + }, + "pdfTopLeftContent": { + "description": "Top left header content. (PDF)", + "example": "Good", + "type": "string" + }, + "pdfTopRightContent": { + "description": "Top right header content. (PDF)", + "example": "Morning", + "type": "string" + }, + "showFilters": { + "description": "Print applied filters on top of the document. (PDF/HTML when visualizationObject is given)", + "example": false, + "type": "boolean" + } + }, + "type": "object" + }, "Smtp": { "description": "Custom SMTP destination for notifications. The properties host, port, username, and password are required on create and update", "properties": { @@ -373,6 +709,64 @@ ], "type": "object" }, + "TabularExportRequest": { + "description": "Export request object describing the export properties and overrides for tabular exports.", + "properties": { + "customOverride": { + "$ref": "#/components/schemas/CustomOverride" + }, + "executionResult": { + "description": "Execution result identifier.", + "example": "ff483727196c9dc862c7fd3a5a84df55c96d61a4", + "type": "string" + }, + "fileName": { + "description": "Filename of downloaded file without extension.", + "example": "result", + "type": "string" + }, + "format": { + "description": "Expected file format.", + "enum": [ + "CSV", + "XLSX", + "HTML", + "PDF" + ], + "example": "CSV", + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/JsonNode" + }, + "relatedDashboardId": { + "description": "Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard.", + "example": "761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + "type": "string" + }, + "settings": { + "$ref": "#/components/schemas/Settings" + }, + "visualizationObject": { + "description": "Visualization object identifier. Alternative to executionResult property.", + "example": "f7c359bc-c230-4487-b15b-ad9685bcb537", + "type": "string" + }, + "visualizationObjectCustomFilters": { + "description": "Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given.", + "example": "[{\"negativeAttributeFilter\":{\"displayForm\":{\"identifier\":{\"id\":\"products.category\",\"type\":\"label\"}},\"notIn\":{\"values\":[\"Books\"]}}}]", + "items": { + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "fileName", + "format" + ], + "type": "object" + }, "TestDestinationRequest": { "description": "Request body with notification channel destination to test.", "properties": { @@ -436,6 +830,42 @@ ], "type": "object" }, + "TriggerAutomationRequest": { + "properties": { + "automation": { + "$ref": "#/components/schemas/AdHocAutomation" + } + }, + "required": [ + "automation" + ], + "type": "object" + }, + "VisualExportRequest": { + "description": "Export request object describing the export properties and metadata for dashboard PDF exports.", + "properties": { + "dashboardId": { + "description": "Dashboard identifier", + "example": "761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + "type": "string" + }, + "fileName": { + "description": "File name to be used for retrieving the pdf document.", + "example": "filename", + "type": "string" + }, + "metadata": { + "description": "Metadata definition in free-form JSON format.", + "example": "{}", + "type": "object" + } + }, + "required": [ + "dashboardId", + "fileName" + ], + "type": "object" + }, "Webhook": { "description": "Webhook destination for notifications. The property url is required on create and update.", "properties": { @@ -772,6 +1202,7 @@ }, "summary": "Get latest notifications.", "tags": [ + "Notification Channels", "actions" ] } @@ -799,6 +1230,7 @@ }, "summary": "Mark all notifications as read.", "tags": [ + "Notification Channels", "actions" ] } @@ -825,6 +1257,77 @@ }, "summary": "Mark notification as read.", "tags": [ + "Notification Channels", + "actions" + ] + } + }, + "/api/v1/actions/workspaces/{workspaceId}/automations/trigger": { + "post": { + "description": "Trigger the automation in the request.", + "operationId": "triggerAutomation", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggerAutomationRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "The automation is successfully triggered." + } + }, + "summary": "Trigger automation.", + "tags": [ + "Automations", + "actions" + ] + } + }, + "/api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/trigger": { + "post": { + "description": "Trigger the existing automation to execute immediately.", + "operationId": "triggerExistingAutomation", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "automationId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "The automation is successfully triggered." + } + }, + "summary": "Trigger existing automation.", + "tags": [ + "Automations", "actions" ] } diff --git a/schemas/gooddata-export-client.json b/schemas/gooddata-export-client.json index 27671db4f..cc34d719d 100644 --- a/schemas/gooddata-export-client.json +++ b/schemas/gooddata-export-client.json @@ -487,6 +487,21 @@ ], "type": "object" }, + "ExecutionSettings": { + "description": "Various settings affecting the process of AFM execution or its result", + "properties": { + "dataSamplingPercentage": { + "description": "Specifies the percentage of rows from fact datasets to use during computation. This feature is available only for workspaces that use a Vertica Data Source without table views.", + "exclusiveMaximum": true, + "exclusiveMinimum": true, + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, "ExportResponse": { "properties": { "exportResult": { @@ -1001,7 +1016,7 @@ "additionalProperties": { "$ref": "#/components/schemas/RawCustomLabel" }, - "description": "Currently No-Op. Map of CustomLabels with keys used as placeholders in export result.", + "description": "Map of CustomLabels with keys used as placeholders in export result.", "type": "object" }, "metrics": { @@ -1023,6 +1038,9 @@ "execution": { "$ref": "#/components/schemas/AFM" }, + "executionSettings": { + "$ref": "#/components/schemas/ExecutionSettings" + }, "fileName": { "description": "Filename of downloaded file without extension.", "example": "result", diff --git a/schemas/gooddata-metadata-client.json b/schemas/gooddata-metadata-client.json index e8c29f470..6b7ebaceb 100644 --- a/schemas/gooddata-metadata-client.json +++ b/schemas/gooddata-metadata-client.json @@ -2890,10 +2890,6 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, - "jitEnabled": { - "description": "Flag to enable/disable JIT provisioning in the given organization", - "type": "boolean" - }, "name": { "description": "Formal name of the organization.", "example": "Alpha corporation", @@ -12817,10 +12813,6 @@ "maxLength": 255, "type": "string" }, - "jitEnabled": { - "description": "Flag to enable/disable JIT provisioning in the given organization", - "type": "boolean" - }, "name": { "maxLength": 255, "nullable": true, @@ -12941,10 +12933,6 @@ "maxLength": 255, "type": "string" }, - "jitEnabled": { - "description": "Flag to enable/disable JIT provisioning in the given organization", - "type": "boolean" - }, "name": { "maxLength": 255, "nullable": true, @@ -13108,10 +13096,6 @@ "maxLength": 255, "type": "string" }, - "jitEnabled": { - "description": "Flag to enable/disable JIT provisioning in the given organization", - "type": "boolean" - }, "name": { "maxLength": 255, "nullable": true,