diff --git a/Makefile b/Makefile index b9155f87f..9f631c7a1 100644 --- a/Makefile +++ b/Makefile @@ -67,6 +67,7 @@ download: $(call download_client,metadata) $(call download_client,scan) $(call download_client,"export") + $(call download_client,automation) .PHONY: mypy mypy: diff --git a/gooddata-api-client/.openapi-generator/FILES b/gooddata-api-client/.openapi-generator/FILES index bf104dce7..1773f4846 100644 --- a/gooddata-api-client/.openapi-generator/FILES +++ b/gooddata-api-client/.openapi-generator/FILES @@ -29,6 +29,8 @@ docs/AfmValidObjectsResponse.md docs/AlertAfm.md docs/AlertCondition.md docs/AlertConditionOperand.md +docs/AlertDescription.md +docs/AlertEvaluationRow.md docs/AnalyticsModelApi.md docs/AnomalyDetectionRequest.md docs/AnomalyDetectionResult.md @@ -43,8 +45,8 @@ docs/AttributeExecutionResultHeader.md docs/AttributeFilter.md docs/AttributeFilterElements.md docs/AttributeFormat.md -docs/AttributeHeaderOut.md -docs/AttributeHeaderOutAttributeHeader.md +docs/AttributeHeader.md +docs/AttributeHeaderAttributeHeader.md docs/AttributeHierarchiesApi.md docs/AttributeItem.md docs/AttributeNegativeFilter.md @@ -55,6 +57,9 @@ docs/AttributeResultHeader.md docs/AttributesApi.md docs/AutomationAlert.md docs/AutomationAlertCondition.md +docs/AutomationExternalRecipient.md +docs/AutomationNotification.md +docs/AutomationNotificationAllOf.md docs/AutomationSchedule.md docs/AutomationTabularExport.md docs/AutomationVisualExport.md @@ -223,6 +228,7 @@ docs/ExecutionSettings.md docs/ExportDefinitionsApi.md docs/ExportRequest.md docs/ExportResponse.md +docs/ExportResult.md docs/FactsApi.md docs/File.md docs/Filter.md @@ -326,6 +332,7 @@ docs/JsonApiAttributeToOneLinkage.md docs/JsonApiAutomationIn.md docs/JsonApiAutomationInAttributes.md docs/JsonApiAutomationInAttributesAlert.md +docs/JsonApiAutomationInAttributesExternalRecipientsInner.md docs/JsonApiAutomationInAttributesSchedule.md docs/JsonApiAutomationInAttributesTabularExportsInner.md docs/JsonApiAutomationInAttributesVisualExportsInner.md @@ -504,6 +511,7 @@ docs/JsonApiIdentityProviderOutDocument.md docs/JsonApiIdentityProviderOutList.md docs/JsonApiIdentityProviderOutWithLinks.md docs/JsonApiIdentityProviderPatch.md +docs/JsonApiIdentityProviderPatchAttributes.md docs/JsonApiIdentityProviderPatchDocument.md docs/JsonApiJwkIn.md docs/JsonApiJwkInAttributes.md @@ -560,6 +568,7 @@ docs/JsonApiNotificationChannelInAttributesDestination.md docs/JsonApiNotificationChannelInDocument.md docs/JsonApiNotificationChannelLinkage.md docs/JsonApiNotificationChannelOut.md +docs/JsonApiNotificationChannelOutAttributes.md docs/JsonApiNotificationChannelOutDocument.md docs/JsonApiNotificationChannelOutList.md docs/JsonApiNotificationChannelOutWithLinks.md @@ -740,19 +749,26 @@ docs/ManagePermissionsApi.md docs/MeasureDefinition.md docs/MeasureExecutionResultHeader.md docs/MeasureGroupHeaders.md -docs/MeasureHeaderOut.md +docs/MeasureHeader.md docs/MeasureItem.md docs/MeasureResultHeader.md docs/MeasureValueFilter.md docs/MetadataSyncApi.md docs/Metric.md +docs/MetricRecord.md docs/MetricsApi.md docs/NegativeAttributeFilter.md docs/NegativeAttributeFilterNegativeAttributeFilter.md docs/Note.md docs/Notes.md +docs/Notification.md docs/NotificationChannelDestination.md docs/NotificationChannelsApi.md +docs/NotificationContent.md +docs/NotificationData.md +docs/Notifications.md +docs/NotificationsMeta.md +docs/NotificationsMetaTotal.md docs/ObjectLinks.md docs/ObjectLinksContainer.md docs/OptionsApi.md @@ -804,7 +820,6 @@ docs/ResultCacheMetadata.md docs/ResultDimension.md docs/ResultDimensionHeader.md docs/ResultSpec.md -docs/RouteRequest.md docs/RouteResult.md docs/RsaSpecification.md docs/RulePermission.md @@ -835,6 +850,7 @@ docs/SortKeyValueValue.md docs/SqlColumn.md docs/SqlQuery.md docs/SqlQueryAllOf.md +docs/Suggestion.md docs/Table.md docs/TableAllOf.md docs/TableOverride.md @@ -843,6 +859,9 @@ docs/TabularExportApi.md docs/TabularExportRequest.md docs/TestConnectionApi.md docs/TestDefinitionRequest.md +docs/TestDestinationRequest.md +docs/TestNotification.md +docs/TestNotificationAllOf.md docs/TestQueryDuration.md docs/TestRequest.md docs/TestResponse.md @@ -884,6 +903,10 @@ docs/VisualExportRequest.md docs/VisualizationObjectApi.md docs/Webhook.md docs/WebhookAllOf.md +docs/WebhookAutomationInfo.md +docs/WebhookMessage.md +docs/WebhookMessageData.md +docs/WebhookRecipient.md docs/WorkspaceDataSource.md docs/WorkspaceIdentifier.md docs/WorkspaceObjectControllerApi.md @@ -996,6 +1019,8 @@ gooddata_api_client/model/afm_valid_objects_response.py gooddata_api_client/model/alert_afm.py gooddata_api_client/model/alert_condition.py gooddata_api_client/model/alert_condition_operand.py +gooddata_api_client/model/alert_description.py +gooddata_api_client/model/alert_evaluation_row.py gooddata_api_client/model/anomaly_detection_request.py gooddata_api_client/model/anomaly_detection_result.py gooddata_api_client/model/api_entitlement.py @@ -1008,8 +1033,8 @@ gooddata_api_client/model/attribute_execution_result_header.py gooddata_api_client/model/attribute_filter.py gooddata_api_client/model/attribute_filter_elements.py gooddata_api_client/model/attribute_format.py -gooddata_api_client/model/attribute_header_out.py -gooddata_api_client/model/attribute_header_out_attribute_header.py +gooddata_api_client/model/attribute_header.py +gooddata_api_client/model/attribute_header_attribute_header.py gooddata_api_client/model/attribute_item.py gooddata_api_client/model/attribute_negative_filter.py gooddata_api_client/model/attribute_negative_filter_all_of.py @@ -1018,6 +1043,9 @@ gooddata_api_client/model/attribute_positive_filter_all_of.py gooddata_api_client/model/attribute_result_header.py gooddata_api_client/model/automation_alert.py gooddata_api_client/model/automation_alert_condition.py +gooddata_api_client/model/automation_external_recipient.py +gooddata_api_client/model/automation_notification.py +gooddata_api_client/model/automation_notification_all_of.py gooddata_api_client/model/automation_schedule.py gooddata_api_client/model/automation_tabular_export.py gooddata_api_client/model/automation_visual_export.py @@ -1171,6 +1199,7 @@ gooddata_api_client/model/execution_result_paging.py gooddata_api_client/model/execution_settings.py gooddata_api_client/model/export_request.py gooddata_api_client/model/export_response.py +gooddata_api_client/model/export_result.py gooddata_api_client/model/file.py gooddata_api_client/model/filter.py gooddata_api_client/model/filter_by.py @@ -1267,6 +1296,7 @@ gooddata_api_client/model/json_api_attribute_to_one_linkage.py gooddata_api_client/model/json_api_automation_in.py gooddata_api_client/model/json_api_automation_in_attributes.py gooddata_api_client/model/json_api_automation_in_attributes_alert.py +gooddata_api_client/model/json_api_automation_in_attributes_external_recipients_inner.py gooddata_api_client/model/json_api_automation_in_attributes_schedule.py gooddata_api_client/model/json_api_automation_in_attributes_tabular_exports_inner.py gooddata_api_client/model/json_api_automation_in_attributes_visual_exports_inner.py @@ -1445,6 +1475,7 @@ gooddata_api_client/model/json_api_identity_provider_out_document.py gooddata_api_client/model/json_api_identity_provider_out_list.py gooddata_api_client/model/json_api_identity_provider_out_with_links.py gooddata_api_client/model/json_api_identity_provider_patch.py +gooddata_api_client/model/json_api_identity_provider_patch_attributes.py gooddata_api_client/model/json_api_identity_provider_patch_document.py gooddata_api_client/model/json_api_jwk_in.py gooddata_api_client/model/json_api_jwk_in_attributes.py @@ -1501,6 +1532,7 @@ gooddata_api_client/model/json_api_notification_channel_in_attributes_destinatio gooddata_api_client/model/json_api_notification_channel_in_document.py gooddata_api_client/model/json_api_notification_channel_linkage.py gooddata_api_client/model/json_api_notification_channel_out.py +gooddata_api_client/model/json_api_notification_channel_out_attributes.py gooddata_api_client/model/json_api_notification_channel_out_document.py gooddata_api_client/model/json_api_notification_channel_out_list.py gooddata_api_client/model/json_api_notification_channel_out_with_links.py @@ -1676,16 +1708,23 @@ gooddata_api_client/model/manage_dashboard_permissions_request_inner.py gooddata_api_client/model/measure_definition.py gooddata_api_client/model/measure_execution_result_header.py gooddata_api_client/model/measure_group_headers.py -gooddata_api_client/model/measure_header_out.py +gooddata_api_client/model/measure_header.py gooddata_api_client/model/measure_item.py gooddata_api_client/model/measure_result_header.py gooddata_api_client/model/measure_value_filter.py gooddata_api_client/model/metric.py +gooddata_api_client/model/metric_record.py gooddata_api_client/model/negative_attribute_filter.py gooddata_api_client/model/negative_attribute_filter_negative_attribute_filter.py gooddata_api_client/model/note.py gooddata_api_client/model/notes.py +gooddata_api_client/model/notification.py gooddata_api_client/model/notification_channel_destination.py +gooddata_api_client/model/notification_content.py +gooddata_api_client/model/notification_data.py +gooddata_api_client/model/notifications.py +gooddata_api_client/model/notifications_meta.py +gooddata_api_client/model/notifications_meta_total.py gooddata_api_client/model/object_links.py gooddata_api_client/model/object_links_container.py gooddata_api_client/model/organization_permission_assignment.py @@ -1729,7 +1768,6 @@ gooddata_api_client/model/result_cache_metadata.py gooddata_api_client/model/result_dimension.py gooddata_api_client/model/result_dimension_header.py gooddata_api_client/model/result_spec.py -gooddata_api_client/model/route_request.py gooddata_api_client/model/route_result.py gooddata_api_client/model/rsa_specification.py gooddata_api_client/model/rule_permission.py @@ -1758,12 +1796,16 @@ gooddata_api_client/model/sort_key_value_value.py gooddata_api_client/model/sql_column.py gooddata_api_client/model/sql_query.py gooddata_api_client/model/sql_query_all_of.py +gooddata_api_client/model/suggestion.py gooddata_api_client/model/table.py gooddata_api_client/model/table_all_of.py gooddata_api_client/model/table_override.py gooddata_api_client/model/table_warning.py gooddata_api_client/model/tabular_export_request.py gooddata_api_client/model/test_definition_request.py +gooddata_api_client/model/test_destination_request.py +gooddata_api_client/model/test_notification.py +gooddata_api_client/model/test_notification_all_of.py gooddata_api_client/model/test_query_duration.py gooddata_api_client/model/test_request.py gooddata_api_client/model/test_response.py @@ -1791,6 +1833,10 @@ gooddata_api_client/model/value.py gooddata_api_client/model/visual_export_request.py gooddata_api_client/model/webhook.py gooddata_api_client/model/webhook_all_of.py +gooddata_api_client/model/webhook_automation_info.py +gooddata_api_client/model/webhook_message.py +gooddata_api_client/model/webhook_message_data.py +gooddata_api_client/model/webhook_recipient.py gooddata_api_client/model/workspace_data_source.py gooddata_api_client/model/workspace_identifier.py gooddata_api_client/model/workspace_permission_assignment.py diff --git a/gooddata-api-client/README.md b/gooddata-api-client/README.md index 14f1f925f..f5d5c5623 100644 --- a/gooddata-api-client/README.md +++ b/gooddata-api-client/README.md @@ -246,6 +246,8 @@ Class | Method | HTTP request | Description *NotificationChannelsApi* | [**get_notification_channels_layout**](docs/NotificationChannelsApi.md#get_notification_channels_layout) | **GET** /api/v1/layout/notificationChannels | Get all notification channels layout *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. +*NotificationChannelsApi* | [**test_notification_channel**](docs/NotificationChannelsApi.md#test_notification_channel) | **POST** /api/v1/actions/notificationChannels/test | Test notification channel. *NotificationChannelsApi* | [**update_entity_notification_channels**](docs/NotificationChannelsApi.md#update_entity_notification_channels) | **PUT** /api/v1/entities/notificationChannels/{id} | Put Notification Channel entity *OptionsApi* | [**get_all_options**](docs/OptionsApi.md#get_all_options) | **GET** /api/v1/options | Links for all configuration options *OrganizationDeclarativeAPIsApi* | [**get_organization_layout**](docs/OrganizationDeclarativeAPIsApi.md#get_organization_layout) | **GET** /api/v1/layout/organization | Get organization layout @@ -288,7 +290,6 @@ Class | Method | HTTP request | Description *SmartFunctionsApi* | [**ai_chat**](docs/SmartFunctionsApi.md#ai_chat) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chat | (BETA) Chat with AI *SmartFunctionsApi* | [**ai_chat_history**](docs/SmartFunctionsApi.md#ai_chat_history) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chatHistory | (BETA) Get Chat History *SmartFunctionsApi* | [**ai_chat_stream**](docs/SmartFunctionsApi.md#ai_chat_stream) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chatStream | (BETA) Chat with AI -*SmartFunctionsApi* | [**ai_route**](docs/SmartFunctionsApi.md#ai_route) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/route | (BETA) Route to supported use cases based on this input query. *SmartFunctionsApi* | [**ai_search**](docs/SmartFunctionsApi.md#ai_search) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/search | (BETA) Semantic Search in Metadata *SmartFunctionsApi* | [**anomaly_detection**](docs/SmartFunctionsApi.md#anomaly_detection) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/anomalyDetection/{resultId} | (EXPERIMENTAL) Smart functions - Anomaly Detection *SmartFunctionsApi* | [**anomaly_detection_result**](docs/SmartFunctionsApi.md#anomaly_detection_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/functions/anomalyDetection/result/{resultId} | (EXPERIMENTAL) Smart functions - Anomaly Detection Result @@ -296,6 +297,7 @@ Class | Method | HTTP request | Description *SmartFunctionsApi* | [**clustering_result**](docs/SmartFunctionsApi.md#clustering_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/functions/clustering/result/{resultId} | (EXPERIMENTAL) Smart functions - Clustering Result *SmartFunctionsApi* | [**forecast**](docs/SmartFunctionsApi.md#forecast) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/forecast/{resultId} | (BETA) Smart functions - Forecast *SmartFunctionsApi* | [**forecast_result**](docs/SmartFunctionsApi.md#forecast_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/functions/forecast/result/{resultId} | (BETA) Smart functions - Forecast Result +*TabularExportApi* | [**create_dashboard_export_request**](docs/TabularExportApi.md#create_dashboard_export_request) | **POST** /api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/export/tabular | (EXPERIMENTAL) Create dashboard tabular export request *TabularExportApi* | [**create_tabular_export**](docs/TabularExportApi.md#create_tabular_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/tabular | Create tabular export request *TabularExportApi* | [**get_tabular_export**](docs/TabularExportApi.md#get_tabular_export) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/tabular/{exportId} | Retrieve exported files *TestConnectionApi* | [**test_data_source**](docs/TestConnectionApi.md#test_data_source) | **POST** /api/v1/actions/dataSources/{dataSourceId}/test | Test data source connection by data source id @@ -384,7 +386,6 @@ Class | Method | HTTP request | Description *ActionsApi* | [**ai_chat**](docs/ActionsApi.md#ai_chat) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chat | (BETA) Chat with AI *ActionsApi* | [**ai_chat_history**](docs/ActionsApi.md#ai_chat_history) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chatHistory | (BETA) Get Chat History *ActionsApi* | [**ai_chat_stream**](docs/ActionsApi.md#ai_chat_stream) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chatStream | (BETA) Chat with AI -*ActionsApi* | [**ai_route**](docs/ActionsApi.md#ai_route) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/route | (BETA) Route to supported use cases based on this input query. *ActionsApi* | [**ai_search**](docs/ActionsApi.md#ai_search) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/search | (BETA) Semantic Search in Metadata *ActionsApi* | [**all_platform_usage**](docs/ActionsApi.md#all_platform_usage) | **GET** /api/v1/actions/collectUsage | Info about the platform usage. *ActionsApi* | [**anomaly_detection**](docs/ActionsApi.md#anomaly_detection) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/anomalyDetection/{resultId} | (EXPERIMENTAL) Smart functions - Anomaly Detection @@ -399,6 +400,7 @@ Class | Method | HTTP request | Description *ActionsApi* | [**compute_report**](docs/ActionsApi.md#compute_report) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute | Executes analytical request and returns link to the result *ActionsApi* | [**compute_valid_descendants**](docs/ActionsApi.md#compute_valid_descendants) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/computeValidDescendants | (BETA) Valid descendants *ActionsApi* | [**compute_valid_objects**](docs/ActionsApi.md#compute_valid_objects) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/computeValidObjects | Valid objects +*ActionsApi* | [**create_dashboard_export_request**](docs/ActionsApi.md#create_dashboard_export_request) | **POST** /api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/export/tabular | (EXPERIMENTAL) Create dashboard tabular export request *ActionsApi* | [**create_pdf_export**](docs/ActionsApi.md#create_pdf_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/visual | Create visual - pdf export request *ActionsApi* | [**create_tabular_export**](docs/ActionsApi.md#create_tabular_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/tabular | Create tabular export request *ActionsApi* | [**dashboard_permissions**](docs/ActionsApi.md#dashboard_permissions) | **GET** /api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/permissions | Get Dashboard Permissions @@ -411,6 +413,7 @@ Class | Method | HTTP request | Description *ActionsApi* | [**get_dependent_entities_graph_from_entry_points**](docs/ActionsApi.md#get_dependent_entities_graph_from_entry_points) | **POST** /api/v1/actions/workspaces/{workspaceId}/dependentEntitiesGraph | Computes the dependent entities graph from given entry points *ActionsApi* | [**get_exported_file**](docs/ActionsApi.md#get_exported_file) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/visual/{exportId} | Retrieve exported files *ActionsApi* | [**get_metadata**](docs/ActionsApi.md#get_metadata) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/visual/{exportId}/metadata | Retrieve metadata context +*ActionsApi* | [**get_notifications**](docs/ActionsApi.md#get_notifications) | **GET** /api/v1/actions/notifications | Get latest notifications. *ActionsApi* | [**get_tabular_export**](docs/ActionsApi.md#get_tabular_export) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/tabular/{exportId} | Retrieve exported files *ActionsApi* | [**get_translation_tags**](docs/ActionsApi.md#get_translation_tags) | **GET** /api/v1/actions/workspaces/{workspaceId}/translations | Get translation tags. *ActionsApi* | [**inherited_entity_conflicts**](docs/ActionsApi.md#inherited_entity_conflicts) | **GET** /api/v1/actions/workspaces/{workspaceId}/inheritedEntityConflicts | Finds identifier conflicts in workspace hierarchy. @@ -423,6 +426,8 @@ Class | Method | HTTP request | Description *ActionsApi* | [**manage_data_source_permissions**](docs/ActionsApi.md#manage_data_source_permissions) | **POST** /api/v1/actions/dataSources/{dataSourceId}/managePermissions | Manage Permissions for a Data Source *ActionsApi* | [**manage_organization_permissions**](docs/ActionsApi.md#manage_organization_permissions) | **POST** /api/v1/actions/organization/managePermissions | Manage Permissions for a Organization *ActionsApi* | [**manage_workspace_permissions**](docs/ActionsApi.md#manage_workspace_permissions) | **POST** /api/v1/actions/workspaces/{workspaceId}/managePermissions | Manage Permissions for a Workspace +*ActionsApi* | [**mark_as_read_notification**](docs/ActionsApi.md#mark_as_read_notification) | **POST** /api/v1/actions/notifications/{notificationId}/markAsRead | Mark notification as read. +*ActionsApi* | [**mark_as_read_notification_all**](docs/ActionsApi.md#mark_as_read_notification_all) | **POST** /api/v1/actions/notifications/markAsRead | Mark all notifications as read. *ActionsApi* | [**metadata_sync**](docs/ActionsApi.md#metadata_sync) | **POST** /api/v1/actions/workspaces/{workspaceId}/metadataSync | (BETA) Sync Metadata to other services *ActionsApi* | [**metadata_sync_organization**](docs/ActionsApi.md#metadata_sync_organization) | **POST** /api/v1/actions/organization/metadataSync | (BETA) Sync organization scope Metadata to other services *ActionsApi* | [**overridden_child_entities**](docs/ActionsApi.md#overridden_child_entities) | **GET** /api/v1/actions/workspaces/{workspaceId}/overriddenChildEntities | Finds identifier overrides in workspace hierarchy. @@ -440,6 +445,8 @@ Class | Method | HTTP request | Description *ActionsApi* | [**set_translations**](docs/ActionsApi.md#set_translations) | **POST** /api/v1/actions/workspaces/{workspaceId}/translations/set | Set translations for entities. *ActionsApi* | [**test_data_source**](docs/ActionsApi.md#test_data_source) | **POST** /api/v1/actions/dataSources/{dataSourceId}/test | Test data source connection by data source id *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* | [**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 @@ -888,6 +895,8 @@ Class | Method | HTTP request | Description - [AlertAfm](docs/AlertAfm.md) - [AlertCondition](docs/AlertCondition.md) - [AlertConditionOperand](docs/AlertConditionOperand.md) + - [AlertDescription](docs/AlertDescription.md) + - [AlertEvaluationRow](docs/AlertEvaluationRow.md) - [AnomalyDetectionRequest](docs/AnomalyDetectionRequest.md) - [AnomalyDetectionResult](docs/AnomalyDetectionResult.md) - [ApiEntitlement](docs/ApiEntitlement.md) @@ -900,8 +909,8 @@ Class | Method | HTTP request | Description - [AttributeFilter](docs/AttributeFilter.md) - [AttributeFilterElements](docs/AttributeFilterElements.md) - [AttributeFormat](docs/AttributeFormat.md) - - [AttributeHeaderOut](docs/AttributeHeaderOut.md) - - [AttributeHeaderOutAttributeHeader](docs/AttributeHeaderOutAttributeHeader.md) + - [AttributeHeader](docs/AttributeHeader.md) + - [AttributeHeaderAttributeHeader](docs/AttributeHeaderAttributeHeader.md) - [AttributeItem](docs/AttributeItem.md) - [AttributeNegativeFilter](docs/AttributeNegativeFilter.md) - [AttributeNegativeFilterAllOf](docs/AttributeNegativeFilterAllOf.md) @@ -910,6 +919,9 @@ Class | Method | HTTP request | Description - [AttributeResultHeader](docs/AttributeResultHeader.md) - [AutomationAlert](docs/AutomationAlert.md) - [AutomationAlertCondition](docs/AutomationAlertCondition.md) + - [AutomationExternalRecipient](docs/AutomationExternalRecipient.md) + - [AutomationNotification](docs/AutomationNotification.md) + - [AutomationNotificationAllOf](docs/AutomationNotificationAllOf.md) - [AutomationSchedule](docs/AutomationSchedule.md) - [AutomationTabularExport](docs/AutomationTabularExport.md) - [AutomationVisualExport](docs/AutomationVisualExport.md) @@ -1063,6 +1075,7 @@ Class | Method | HTTP request | Description - [ExecutionSettings](docs/ExecutionSettings.md) - [ExportRequest](docs/ExportRequest.md) - [ExportResponse](docs/ExportResponse.md) + - [ExportResult](docs/ExportResult.md) - [File](docs/File.md) - [Filter](docs/Filter.md) - [FilterBy](docs/FilterBy.md) @@ -1159,6 +1172,7 @@ Class | Method | HTTP request | Description - [JsonApiAutomationIn](docs/JsonApiAutomationIn.md) - [JsonApiAutomationInAttributes](docs/JsonApiAutomationInAttributes.md) - [JsonApiAutomationInAttributesAlert](docs/JsonApiAutomationInAttributesAlert.md) + - [JsonApiAutomationInAttributesExternalRecipientsInner](docs/JsonApiAutomationInAttributesExternalRecipientsInner.md) - [JsonApiAutomationInAttributesSchedule](docs/JsonApiAutomationInAttributesSchedule.md) - [JsonApiAutomationInAttributesTabularExportsInner](docs/JsonApiAutomationInAttributesTabularExportsInner.md) - [JsonApiAutomationInAttributesVisualExportsInner](docs/JsonApiAutomationInAttributesVisualExportsInner.md) @@ -1337,6 +1351,7 @@ Class | Method | HTTP request | Description - [JsonApiIdentityProviderOutList](docs/JsonApiIdentityProviderOutList.md) - [JsonApiIdentityProviderOutWithLinks](docs/JsonApiIdentityProviderOutWithLinks.md) - [JsonApiIdentityProviderPatch](docs/JsonApiIdentityProviderPatch.md) + - [JsonApiIdentityProviderPatchAttributes](docs/JsonApiIdentityProviderPatchAttributes.md) - [JsonApiIdentityProviderPatchDocument](docs/JsonApiIdentityProviderPatchDocument.md) - [JsonApiJwkIn](docs/JsonApiJwkIn.md) - [JsonApiJwkInAttributes](docs/JsonApiJwkInAttributes.md) @@ -1393,6 +1408,7 @@ Class | Method | HTTP request | Description - [JsonApiNotificationChannelInDocument](docs/JsonApiNotificationChannelInDocument.md) - [JsonApiNotificationChannelLinkage](docs/JsonApiNotificationChannelLinkage.md) - [JsonApiNotificationChannelOut](docs/JsonApiNotificationChannelOut.md) + - [JsonApiNotificationChannelOutAttributes](docs/JsonApiNotificationChannelOutAttributes.md) - [JsonApiNotificationChannelOutDocument](docs/JsonApiNotificationChannelOutDocument.md) - [JsonApiNotificationChannelOutList](docs/JsonApiNotificationChannelOutList.md) - [JsonApiNotificationChannelOutWithLinks](docs/JsonApiNotificationChannelOutWithLinks.md) @@ -1568,16 +1584,23 @@ Class | Method | HTTP request | Description - [MeasureDefinition](docs/MeasureDefinition.md) - [MeasureExecutionResultHeader](docs/MeasureExecutionResultHeader.md) - [MeasureGroupHeaders](docs/MeasureGroupHeaders.md) - - [MeasureHeaderOut](docs/MeasureHeaderOut.md) + - [MeasureHeader](docs/MeasureHeader.md) - [MeasureItem](docs/MeasureItem.md) - [MeasureResultHeader](docs/MeasureResultHeader.md) - [MeasureValueFilter](docs/MeasureValueFilter.md) - [Metric](docs/Metric.md) + - [MetricRecord](docs/MetricRecord.md) - [NegativeAttributeFilter](docs/NegativeAttributeFilter.md) - [NegativeAttributeFilterNegativeAttributeFilter](docs/NegativeAttributeFilterNegativeAttributeFilter.md) - [Note](docs/Note.md) - [Notes](docs/Notes.md) + - [Notification](docs/Notification.md) - [NotificationChannelDestination](docs/NotificationChannelDestination.md) + - [NotificationContent](docs/NotificationContent.md) + - [NotificationData](docs/NotificationData.md) + - [Notifications](docs/Notifications.md) + - [NotificationsMeta](docs/NotificationsMeta.md) + - [NotificationsMetaTotal](docs/NotificationsMetaTotal.md) - [ObjectLinks](docs/ObjectLinks.md) - [ObjectLinksContainer](docs/ObjectLinksContainer.md) - [OrganizationPermissionAssignment](docs/OrganizationPermissionAssignment.md) @@ -1621,7 +1644,6 @@ Class | Method | HTTP request | Description - [ResultDimension](docs/ResultDimension.md) - [ResultDimensionHeader](docs/ResultDimensionHeader.md) - [ResultSpec](docs/ResultSpec.md) - - [RouteRequest](docs/RouteRequest.md) - [RouteResult](docs/RouteResult.md) - [RsaSpecification](docs/RsaSpecification.md) - [RulePermission](docs/RulePermission.md) @@ -1650,12 +1672,16 @@ Class | Method | HTTP request | Description - [SqlColumn](docs/SqlColumn.md) - [SqlQuery](docs/SqlQuery.md) - [SqlQueryAllOf](docs/SqlQueryAllOf.md) + - [Suggestion](docs/Suggestion.md) - [Table](docs/Table.md) - [TableAllOf](docs/TableAllOf.md) - [TableOverride](docs/TableOverride.md) - [TableWarning](docs/TableWarning.md) - [TabularExportRequest](docs/TabularExportRequest.md) - [TestDefinitionRequest](docs/TestDefinitionRequest.md) + - [TestDestinationRequest](docs/TestDestinationRequest.md) + - [TestNotification](docs/TestNotification.md) + - [TestNotificationAllOf](docs/TestNotificationAllOf.md) - [TestQueryDuration](docs/TestQueryDuration.md) - [TestRequest](docs/TestRequest.md) - [TestResponse](docs/TestResponse.md) @@ -1683,6 +1709,10 @@ Class | Method | HTTP request | Description - [VisualExportRequest](docs/VisualExportRequest.md) - [Webhook](docs/Webhook.md) - [WebhookAllOf](docs/WebhookAllOf.md) + - [WebhookAutomationInfo](docs/WebhookAutomationInfo.md) + - [WebhookMessage](docs/WebhookMessage.md) + - [WebhookMessageData](docs/WebhookMessageData.md) + - [WebhookRecipient](docs/WebhookRecipient.md) - [WorkspaceDataSource](docs/WorkspaceDataSource.md) - [WorkspaceIdentifier](docs/WorkspaceIdentifier.md) - [WorkspacePermissionAssignment](docs/WorkspacePermissionAssignment.md) diff --git a/gooddata-api-client/docs/AFM.md b/gooddata-api-client/docs/AFM.md index 19b230b09..4de6a64be 100644 --- a/gooddata-api-client/docs/AFM.md +++ b/gooddata-api-client/docs/AFM.md @@ -6,7 +6,7 @@ Top level executable entity. Combination of [A]ttributes, [F]ilters & [M]etrics. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **attributes** | [**[AttributeItem]**](AttributeItem.md) | Attributes to be used in the computation. | -**filters** | [**[FilterDefinition]**](FilterDefinition.md) | Various filter types to filter execution result. | +**filters** | [**[FilterDefinition]**](FilterDefinition.md) | Various filter types to filter the execution result. | **measures** | [**[MeasureItem]**](MeasureItem.md) | Metrics to be computed. | **aux_measures** | [**[MeasureItem]**](MeasureItem.md) | Metrics to be referenced from other AFM objects (e.g. filters) but not included in the 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/ActionsApi.md b/gooddata-api-client/docs/ActionsApi.md index ed9cb8070..4b4086b5f 100644 --- a/gooddata-api-client/docs/ActionsApi.md +++ b/gooddata-api-client/docs/ActionsApi.md @@ -7,7 +7,6 @@ Method | HTTP request | Description [**ai_chat**](ActionsApi.md#ai_chat) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chat | (BETA) Chat with AI [**ai_chat_history**](ActionsApi.md#ai_chat_history) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chatHistory | (BETA) Get Chat History [**ai_chat_stream**](ActionsApi.md#ai_chat_stream) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chatStream | (BETA) Chat with AI -[**ai_route**](ActionsApi.md#ai_route) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/route | (BETA) Route to supported use cases based on this input query. [**ai_search**](ActionsApi.md#ai_search) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/search | (BETA) Semantic Search in Metadata [**all_platform_usage**](ActionsApi.md#all_platform_usage) | **GET** /api/v1/actions/collectUsage | Info about the platform usage. [**anomaly_detection**](ActionsApi.md#anomaly_detection) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/anomalyDetection/{resultId} | (EXPERIMENTAL) Smart functions - Anomaly Detection @@ -22,6 +21,7 @@ Method | HTTP request | Description [**compute_report**](ActionsApi.md#compute_report) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute | Executes analytical request and returns link to the result [**compute_valid_descendants**](ActionsApi.md#compute_valid_descendants) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/computeValidDescendants | (BETA) Valid descendants [**compute_valid_objects**](ActionsApi.md#compute_valid_objects) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/computeValidObjects | Valid objects +[**create_dashboard_export_request**](ActionsApi.md#create_dashboard_export_request) | **POST** /api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/export/tabular | (EXPERIMENTAL) Create dashboard tabular export request [**create_pdf_export**](ActionsApi.md#create_pdf_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/visual | Create visual - pdf export request [**create_tabular_export**](ActionsApi.md#create_tabular_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/tabular | Create tabular export request [**dashboard_permissions**](ActionsApi.md#dashboard_permissions) | **GET** /api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/permissions | Get Dashboard Permissions @@ -34,6 +34,7 @@ Method | HTTP request | Description [**get_dependent_entities_graph_from_entry_points**](ActionsApi.md#get_dependent_entities_graph_from_entry_points) | **POST** /api/v1/actions/workspaces/{workspaceId}/dependentEntitiesGraph | Computes the dependent entities graph from given entry points [**get_exported_file**](ActionsApi.md#get_exported_file) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/visual/{exportId} | Retrieve exported files [**get_metadata**](ActionsApi.md#get_metadata) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/visual/{exportId}/metadata | Retrieve metadata context +[**get_notifications**](ActionsApi.md#get_notifications) | **GET** /api/v1/actions/notifications | Get latest notifications. [**get_tabular_export**](ActionsApi.md#get_tabular_export) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/tabular/{exportId} | Retrieve exported files [**get_translation_tags**](ActionsApi.md#get_translation_tags) | **GET** /api/v1/actions/workspaces/{workspaceId}/translations | Get translation tags. [**inherited_entity_conflicts**](ActionsApi.md#inherited_entity_conflicts) | **GET** /api/v1/actions/workspaces/{workspaceId}/inheritedEntityConflicts | Finds identifier conflicts in workspace hierarchy. @@ -46,6 +47,8 @@ Method | HTTP request | Description [**manage_data_source_permissions**](ActionsApi.md#manage_data_source_permissions) | **POST** /api/v1/actions/dataSources/{dataSourceId}/managePermissions | Manage Permissions for a Data Source [**manage_organization_permissions**](ActionsApi.md#manage_organization_permissions) | **POST** /api/v1/actions/organization/managePermissions | Manage Permissions for a Organization [**manage_workspace_permissions**](ActionsApi.md#manage_workspace_permissions) | **POST** /api/v1/actions/workspaces/{workspaceId}/managePermissions | Manage Permissions for a Workspace +[**mark_as_read_notification**](ActionsApi.md#mark_as_read_notification) | **POST** /api/v1/actions/notifications/{notificationId}/markAsRead | Mark notification as read. +[**mark_as_read_notification_all**](ActionsApi.md#mark_as_read_notification_all) | **POST** /api/v1/actions/notifications/markAsRead | Mark all notifications as read. [**metadata_sync**](ActionsApi.md#metadata_sync) | **POST** /api/v1/actions/workspaces/{workspaceId}/metadataSync | (BETA) Sync Metadata to other services [**metadata_sync_organization**](ActionsApi.md#metadata_sync_organization) | **POST** /api/v1/actions/organization/metadataSync | (BETA) Sync organization scope Metadata to other services [**overridden_child_entities**](ActionsApi.md#overridden_child_entities) | **GET** /api/v1/actions/workspaces/{workspaceId}/overriddenChildEntities | Finds identifier overrides in workspace hierarchy. @@ -63,6 +66,8 @@ Method | HTTP request | Description [**set_translations**](ActionsApi.md#set_translations) | **POST** /api/v1/actions/workspaces/{workspaceId}/translations/set | Set translations for entities. [**test_data_source**](ActionsApi.md#test_data_source) | **POST** /api/v1/actions/dataSources/{dataSourceId}/test | Test data source connection by data source id [**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. [**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 @@ -308,78 +313,6 @@ No authorization required - **Accept**: text/event-stream -### 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) - -# **ai_route** -> RouteResult ai_route(workspace_id, route_request) - -(BETA) Route to supported use cases based on this input query. - -(BETA) Uses similarity (e.g. cosine distance) to find most similar use cases. - -### Example - - -```python -import time -import gooddata_api_client -from gooddata_api_client.api import actions_api -from gooddata_api_client.model.route_result import RouteResult -from gooddata_api_client.model.route_request import RouteRequest -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 = "/6bUUGjjNSwg0_bs" # str | Workspace identifier - route_request = RouteRequest( - question="question_example", - ) # RouteRequest | - - # example passing only required values which don't have defaults set - try: - # (BETA) Route to supported use cases based on this input query. - api_response = api_instance.ai_route(workspace_id, route_request) - pprint(api_response) - except gooddata_api_client.ApiException as e: - print("Exception when calling ActionsApi->ai_route: %s\n" % e) -``` - - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **workspace_id** | **str**| Workspace identifier | - **route_request** | [**RouteRequest**](RouteRequest.md)| | - -### Return type - -[**RouteResult**](RouteResult.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - ### HTTP response details | Status code | Description | Response headers | @@ -1306,7 +1239,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -1525,7 +1458,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -1589,6 +1522,75 @@ 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) +# **create_dashboard_export_request** +> ExportResponse create_dashboard_export_request(workspace_id, dashboard_id) + +(EXPERIMENTAL) Create dashboard tabular export request + +Note: This API is an experimental and is going to change. Please, use it accordingly.An tabular export job will be created based on the export request and put to queue to be executed. The result of the operation will be an exportResult identifier that will be assembled by the client into a url that can be polled. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from gooddata_api_client.model.export_response import ExportResponse +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 | + dashboard_id = "dashboardId_example" # str | + + # example passing only required values which don't have defaults set + try: + # (EXPERIMENTAL) Create dashboard tabular export request + api_response = api_instance.create_dashboard_export_request(workspace_id, dashboard_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->create_dashboard_export_request: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **dashboard_id** | **str**| | + +### Return type + +[**ExportResponse**](ExportResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Tabular export request created successfully. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **create_pdf_export** > ExportResponse create_pdf_export(workspace_id, visual_export_request) @@ -1879,7 +1881,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -2622,6 +2624,84 @@ 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 actions_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 = actions_api.ActionsApi(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 ActionsApi->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) + # **get_tabular_export** > get_tabular_export(workspace_id, export_id) @@ -3517,6 +3597,137 @@ No authorization required - **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** +> 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 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) + 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 ActionsApi->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 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 | 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 ActionsApi->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 | @@ -4790,6 +5001,157 @@ 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) +# **test_existing_notification_channel** +> TestResponse test_existing_notification_channel(notification_channel_id) + +Test existing notification channel. + +Tests the existing notification channel by sending a test notification. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from gooddata_api_client.model.test_response import TestResponse +from gooddata_api_client.model.test_destination_request import TestDestinationRequest +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) + notification_channel_id = "notificationChannelId_example" # str | + test_destination_request = TestDestinationRequest( + destination=DeclarativeNotificationChannelDestination(None), + ) # TestDestinationRequest | (optional) + + # example passing only required values which don't have defaults set + try: + # Test existing notification channel. + api_response = api_instance.test_existing_notification_channel(notification_channel_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->test_existing_notification_channel: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Test existing notification channel. + api_response = api_instance.test_existing_notification_channel(notification_channel_id, test_destination_request=test_destination_request) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->test_existing_notification_channel: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **notification_channel_id** | **str**| | + **test_destination_request** | [**TestDestinationRequest**](TestDestinationRequest.md)| | [optional] + +### Return type + +[**TestResponse**](TestResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | The result of the test of a notification channel connection. | - | + +[[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) + +# **test_notification_channel** +> TestResponse test_notification_channel(test_destination_request) + +Test notification channel. + +Tests the notification channel by sending a test notification. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from gooddata_api_client.model.test_response import TestResponse +from gooddata_api_client.model.test_destination_request import TestDestinationRequest +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) + test_destination_request = TestDestinationRequest( + destination=DeclarativeNotificationChannelDestination(None), + ) # TestDestinationRequest | + + # example passing only required values which don't have defaults set + try: + # Test notification channel. + api_response = api_instance.test_notification_channel(test_destination_request) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->test_notification_channel: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **test_destination_request** | [**TestDestinationRequest**](TestDestinationRequest.md)| | + +### Return type + +[**TestResponse**](TestResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | The result of the test of a notification channel connection. | - | + +[[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/AfmExecutionResponse.md b/gooddata-api-client/docs/AfmExecutionResponse.md index 33ab4e5f0..c8ff903a4 100644 --- a/gooddata-api-client/docs/AfmExecutionResponse.md +++ b/gooddata-api-client/docs/AfmExecutionResponse.md @@ -1,5 +1,6 @@ # AfmExecutionResponse +Response to AFM execution request ## Properties Name | Type | Description | Notes diff --git a/gooddata-api-client/docs/AfmIdentifier.md b/gooddata-api-client/docs/AfmIdentifier.md index 4976b4b76..20783beed 100644 --- a/gooddata-api-client/docs/AfmIdentifier.md +++ b/gooddata-api-client/docs/AfmIdentifier.md @@ -1,5 +1,6 @@ # AfmIdentifier +Reference to the attribute label to which the filter should be applied. ## Properties Name | Type | Description | Notes diff --git a/gooddata-api-client/docs/AfmObjectIdentifierAttribute.md b/gooddata-api-client/docs/AfmObjectIdentifierAttribute.md index e31efa01b..60edb9ed7 100644 --- a/gooddata-api-client/docs/AfmObjectIdentifierAttribute.md +++ b/gooddata-api-client/docs/AfmObjectIdentifierAttribute.md @@ -1,5 +1,6 @@ # AfmObjectIdentifierAttribute +Reference to the date attribute to use. ## Properties Name | Type | Description | Notes diff --git a/gooddata-api-client/docs/AfmObjectIdentifierCore.md b/gooddata-api-client/docs/AfmObjectIdentifierCore.md index 086538c91..115c9558d 100644 --- a/gooddata-api-client/docs/AfmObjectIdentifierCore.md +++ b/gooddata-api-client/docs/AfmObjectIdentifierCore.md @@ -1,5 +1,6 @@ # AfmObjectIdentifierCore +Reference to the metric, fact or attribute object to use for the metric. ## Properties Name | Type | Description | Notes diff --git a/gooddata-api-client/docs/AfmObjectIdentifierDataset.md b/gooddata-api-client/docs/AfmObjectIdentifierDataset.md index af93c6510..e8b2b2c97 100644 --- a/gooddata-api-client/docs/AfmObjectIdentifierDataset.md +++ b/gooddata-api-client/docs/AfmObjectIdentifierDataset.md @@ -1,5 +1,6 @@ # AfmObjectIdentifierDataset +Reference to the date dataset to which the filter should be applied. ## Properties Name | Type | Description | Notes diff --git a/gooddata-api-client/docs/AlertDescription.md b/gooddata-api-client/docs/AlertDescription.md new file mode 100644 index 000000000..0a66d39ea --- /dev/null +++ b/gooddata-api-client/docs/AlertDescription.md @@ -0,0 +1,26 @@ +# AlertDescription + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**condition** | **str** | | +**metric** | **str** | | +**attribute** | **str** | | [optional] +**current_values** | [**[AlertEvaluationRow]**](AlertEvaluationRow.md) | | [optional] +**error_message** | **str** | | [optional] +**filter_count** | **int** | | [optional] +**formatted_threshold** | **str** | | [optional] +**lower_threshold** | **float** | | [optional] +**remaining_alert_evaluation_count** | **int** | | [optional] +**status** | **str** | | [optional] +**threshold** | **float** | | [optional] +**total_value_count** | **int** | | [optional] +**trace_id** | **str** | | [optional] +**triggered_count** | **int** | | [optional] +**upper_threshold** | **float** | | [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/AlertEvaluationRow.md b/gooddata-api-client/docs/AlertEvaluationRow.md new file mode 100644 index 000000000..ffd81181a --- /dev/null +++ b/gooddata-api-client/docs/AlertEvaluationRow.md @@ -0,0 +1,15 @@ +# AlertEvaluationRow + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**computed_metric** | [**MetricRecord**](MetricRecord.md) | | [optional] +**label_value** | **str** | | [optional] +**primary_metric** | [**MetricRecord**](MetricRecord.md) | | [optional] +**secondary_metric** | [**MetricRecord**](MetricRecord.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/ArithmeticMeasureDefinition.md b/gooddata-api-client/docs/ArithmeticMeasureDefinition.md index 3ee4790d7..ae1778fd0 100644 --- a/gooddata-api-client/docs/ArithmeticMeasureDefinition.md +++ b/gooddata-api-client/docs/ArithmeticMeasureDefinition.md @@ -1,6 +1,6 @@ # ArithmeticMeasureDefinition -Metric representing arithmetics between metrics. +Metric representing arithmetics between other metrics. ## Properties Name | Type | Description | Notes diff --git a/gooddata-api-client/docs/AttributeFormat.md b/gooddata-api-client/docs/AttributeFormat.md index c43ac7318..a60ce0007 100644 --- a/gooddata-api-client/docs/AttributeFormat.md +++ b/gooddata-api-client/docs/AttributeFormat.md @@ -1,11 +1,12 @@ # AttributeFormat +Attribute format describes formatting information to effectively format attribute values when needed. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**locale** | **str** | Format locale | -**pattern** | **str** | Format pattern | +**locale** | **str** | Format locale code like 'en-US', 'cs-CZ', etc. | +**pattern** | **str** | ICU formatting pattern like 'y', 'dd.MM.y', etc. | **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/AttributeHeaderOut.md b/gooddata-api-client/docs/AttributeHeader.md similarity index 77% rename from gooddata-api-client/docs/AttributeHeaderOut.md rename to gooddata-api-client/docs/AttributeHeader.md index d3bd5ba6a..ef93870a2 100644 --- a/gooddata-api-client/docs/AttributeHeaderOut.md +++ b/gooddata-api-client/docs/AttributeHeader.md @@ -1,10 +1,10 @@ -# AttributeHeaderOut +# AttributeHeader ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**attribute_header** | [**AttributeHeaderOutAttributeHeader**](AttributeHeaderOutAttributeHeader.md) | | +**attribute_header** | [**AttributeHeaderAttributeHeader**](AttributeHeaderAttributeHeader.md) | | **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/gooddata-api-client/docs/AttributeHeaderOutAttributeHeader.md b/gooddata-api-client/docs/AttributeHeaderAttributeHeader.md similarity index 64% rename from gooddata-api-client/docs/AttributeHeaderOutAttributeHeader.md rename to gooddata-api-client/docs/AttributeHeaderAttributeHeader.md index 644fbe646..236d6dfb8 100644 --- a/gooddata-api-client/docs/AttributeHeaderOutAttributeHeader.md +++ b/gooddata-api-client/docs/AttributeHeaderAttributeHeader.md @@ -1,18 +1,18 @@ -# AttributeHeaderOutAttributeHeader +# AttributeHeaderAttributeHeader ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **attribute** | [**RestApiIdentifier**](RestApiIdentifier.md) | | -**attribute_name** | **str** | | +**attribute_name** | **str** | Attribute name. | **label** | [**RestApiIdentifier**](RestApiIdentifier.md) | | -**label_name** | **str** | | -**local_identifier** | **str** | | +**label_name** | **str** | Label name. | +**local_identifier** | **str** | Local identifier of the attribute this header relates to. | **primary_label** | [**RestApiIdentifier**](RestApiIdentifier.md) | | **format** | [**AttributeFormat**](AttributeFormat.md) | | [optional] -**granularity** | **str** | | [optional] -**value_type** | **str** | | [optional] +**granularity** | **str** | Date granularity of the attribute, only filled for date attributes. | [optional] +**value_type** | **str** | Attribute value type. | [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/AttributeItem.md b/gooddata-api-client/docs/AttributeItem.md index 9d84f9e81..c482502f0 100644 --- a/gooddata-api-client/docs/AttributeItem.md +++ b/gooddata-api-client/docs/AttributeItem.md @@ -5,8 +5,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **label** | [**AfmObjectIdentifierLabel**](AfmObjectIdentifierLabel.md) | | -**local_identifier** | **str** | | -**show_all_values** | **bool** | Specifies that the label should be outer-joined. | [optional] if omitted the server will use the default value of False +**local_identifier** | **str** | Local identifier of the attribute. This can be used to reference the attribute in other parts of the execution definition. | +**show_all_values** | **bool** | Indicates whether to show all values of given attribute even if the data bound to those values is not available. | [optional] if omitted the server will use the default value of False **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/RouteRequest.md b/gooddata-api-client/docs/AutomationExternalRecipient.md similarity index 81% rename from gooddata-api-client/docs/RouteRequest.md rename to gooddata-api-client/docs/AutomationExternalRecipient.md index d1122df39..d239391e5 100644 --- a/gooddata-api-client/docs/RouteRequest.md +++ b/gooddata-api-client/docs/AutomationExternalRecipient.md @@ -1,10 +1,10 @@ -# RouteRequest +# AutomationExternalRecipient ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**question** | **str** | Route to supported use cases based on this input query. | +**email** | **str** | E-mail address to send notifications from. | **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/MeasureHeaderOut.md b/gooddata-api-client/docs/AutomationNotification.md similarity index 77% rename from gooddata-api-client/docs/MeasureHeaderOut.md rename to gooddata-api-client/docs/AutomationNotification.md index 325e64c2e..78fb7c72e 100644 --- a/gooddata-api-client/docs/MeasureHeaderOut.md +++ b/gooddata-api-client/docs/AutomationNotification.md @@ -1,12 +1,11 @@ -# MeasureHeaderOut +# AutomationNotification ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**local_identifier** | **str** | | -**format** | **str** | | [optional] -**name** | **str** | | [optional] +**content** | [**WebhookMessage**](WebhookMessage.md) | | +**type** | **str** | | **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/gooddata-api-client/docs/AutomationNotificationAllOf.md b/gooddata-api-client/docs/AutomationNotificationAllOf.md new file mode 100644 index 000000000..00ed6706b --- /dev/null +++ b/gooddata-api-client/docs/AutomationNotificationAllOf.md @@ -0,0 +1,12 @@ +# AutomationNotificationAllOf + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**content** | [**WebhookMessage**](WebhookMessage.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 b15af49ad..bd9caea53 100644 --- a/gooddata-api-client/docs/AutomationsApi.md +++ b/gooddata-api-client/docs/AutomationsApi.md @@ -55,7 +55,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -80,6 +80,11 @@ with gooddata_api_client.ApiClient() as api_client: are_relations_valid=True, description="description_example", details=None, + external_recipients=[ + JsonApiAutomationInAttributesExternalRecipientsInner( + email="email_example", + ), + ], metadata={}, schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", @@ -613,7 +618,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -638,6 +643,11 @@ with gooddata_api_client.ApiClient() as api_client: are_relations_valid=True, description="description_example", details=None, + external_recipients=[ + JsonApiAutomationInAttributesExternalRecipientsInner( + email="email_example", + ), + ], metadata={}, schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", @@ -830,7 +840,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -871,6 +881,11 @@ with gooddata_api_client.ApiClient() as api_client: type="exportDefinition", ), ], + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], id="/6bUUGjjNSwg0_bs", metadata=JsonNode(), modified_at="2023-07-20 12:30", @@ -1036,7 +1051,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -1061,6 +1076,11 @@ with gooddata_api_client.ApiClient() as api_client: are_relations_valid=True, description="description_example", details=None, + external_recipients=[ + JsonApiAutomationInAttributesExternalRecipientsInner( + email="email_example", + ), + ], metadata={}, schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", diff --git a/gooddata-api-client/docs/ComparisonMeasureValueFilterComparisonMeasureValueFilter.md b/gooddata-api-client/docs/ComparisonMeasureValueFilterComparisonMeasureValueFilter.md index 9a1fa0f96..d55392519 100644 --- a/gooddata-api-client/docs/ComparisonMeasureValueFilterComparisonMeasureValueFilter.md +++ b/gooddata-api-client/docs/ComparisonMeasureValueFilterComparisonMeasureValueFilter.md @@ -8,8 +8,9 @@ Name | Type | Description | Notes **operator** | **str** | | **value** | **float** | | **apply_on_result** | **bool** | | [optional] +**dimensionality** | [**[AfmIdentifier]**](AfmIdentifier.md) | References to the attributes to be used when filtering. | [optional] **local_identifier** | **str** | | [optional] -**treat_null_values_as** | **float** | | [optional] +**treat_null_values_as** | **float** | A value that will be substituted for null values in the metric for the comparisons. | [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/ComputationApi.md b/gooddata-api-client/docs/ComputationApi.md index 57db1a460..68a1854bb 100644 --- a/gooddata-api-client/docs/ComputationApi.md +++ b/gooddata-api-client/docs/ComputationApi.md @@ -162,7 +162,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -381,7 +381,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -483,7 +483,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], diff --git a/gooddata-api-client/docs/CreatedVisualization.md b/gooddata-api-client/docs/CreatedVisualization.md index 3008ed241..163593df9 100644 --- a/gooddata-api-client/docs/CreatedVisualization.md +++ b/gooddata-api-client/docs/CreatedVisualization.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **filters** | [**[CreatedVisualizationFiltersInner]**](CreatedVisualizationFiltersInner.md) | List of filters to be applied to the new visualization | **id** | **str** | Proposed ID of the new visualization | **metrics** | [**[Metric]**](Metric.md) | List of metrics to be used in the new visualization | +**suggestions** | [**[Suggestion]**](Suggestion.md) | Suggestions for next steps | **title** | **str** | Proposed title of the new visualization | **visualization_type** | **str** | Visualization type requested in question | **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/DataColumnLocators.md b/gooddata-api-client/docs/DataColumnLocators.md index 50816232a..e081e7cd4 100644 --- a/gooddata-api-client/docs/DataColumnLocators.md +++ b/gooddata-api-client/docs/DataColumnLocators.md @@ -1,5 +1,6 @@ # DataColumnLocators +Data column locators for the values. ## Properties Name | Type | Description | Notes diff --git a/gooddata-api-client/docs/DeclarativeAutomation.md b/gooddata-api-client/docs/DeclarativeAutomation.md index 45ffca5af..ebfd1063d 100644 --- a/gooddata-api-client/docs/DeclarativeAutomation.md +++ b/gooddata-api-client/docs/DeclarativeAutomation.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **description** | **str** | | [optional] **details** | **{str: (str,)}** | TODO | [optional] **export_definitions** | [**[DeclarativeExportDefinitionIdentifier]**](DeclarativeExportDefinitionIdentifier.md) | | [optional] +**external_recipients** | [**[AutomationExternalRecipient]**](AutomationExternalRecipient.md) | External recipients of the automation action results. | [optional] **metadata** | [**JsonNode**](JsonNode.md) | | [optional] **modified_at** | **str, none_type** | Time of the last entity modification. | [optional] **modified_by** | [**DeclarativeUserIdentifier**](DeclarativeUserIdentifier.md) | | [optional] diff --git a/gooddata-api-client/docs/DeclarativeExportDefinitionRequestPayload.md b/gooddata-api-client/docs/DeclarativeExportDefinitionRequestPayload.md index ae7a2039c..9a8bfa613 100644 --- a/gooddata-api-client/docs/DeclarativeExportDefinitionRequestPayload.md +++ b/gooddata-api-client/docs/DeclarativeExportDefinitionRequestPayload.md @@ -10,7 +10,7 @@ Name | Type | Description | Notes **related_dashboard_id** | **str** | Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard. | [optional] **settings** | [**Settings**](Settings.md) | | [optional] **visualization_object** | **str** | Visualization object identifier. Alternative to executionResult property. | [optional] -**visualization_object_custom_filters** | **[{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]** | Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only) | [optional] +**visualization_object_custom_filters** | **[{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]** | Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. | [optional] **file_name** | **str** | File name to be used for retrieving the pdf document. | [optional] **format** | **str** | Expected file format. | [optional] **dashboard_id** | **str** | Dashboard identifier | [optional] diff --git a/gooddata-api-client/docs/DeclarativeIdentityProvider.md b/gooddata-api-client/docs/DeclarativeIdentityProvider.md index 9f9bc5a33..84e7623a4 100644 --- a/gooddata-api-client/docs/DeclarativeIdentityProvider.md +++ b/gooddata-api-client/docs/DeclarativeIdentityProvider.md @@ -6,11 +6,10 @@ Notification channels. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **str** | FilterView object ID. | +**identifiers** | **[str]** | List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. | **custom_claim_mapping** | **{str: (str,)}** | Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute. | [optional] -**identifiers** | **[str]** | List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. | [optional] **oauth_client_id** | **str** | The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] **oauth_client_secret** | **str** | The OAuth client secret of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] -**oauth_issuer_id** | **str** | Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider. | [optional] **oauth_issuer_location** | **str** | The location of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] **saml_metadata** | **str** | Base64 encoded xml document with SAML metadata. This document is issued by your SAML provider. It includes the issuer's name, expiration information, and keys that can be used to validate the response from the identity provider. This field is mandatory for SAML IdP. | [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/DeclarativeNotificationChannel.md b/gooddata-api-client/docs/DeclarativeNotificationChannel.md index be1c4ea7e..87633a619 100644 --- a/gooddata-api-client/docs/DeclarativeNotificationChannel.md +++ b/gooddata-api-client/docs/DeclarativeNotificationChannel.md @@ -6,8 +6,9 @@ A declarative form of a particular notification channel. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **str** | Identifier of a notification channel | -**allowed_recipients** | **str** | Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization | [optional] if omitted the server will use the default value of "INTERNAL" +**allowed_recipients** | **str** | Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization | [optional] if omitted the server will use the default value of "INTERNAL" **custom_dashboard_url** | **str** | Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}. | [optional] +**dashboard_link_visibility** | **str** | Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link | [optional] if omitted the server will use the default value of "INTERNAL_ONLY" **description** | **str** | Description of a notification channel. | [optional] **destination** | [**DeclarativeNotificationChannelDestination**](DeclarativeNotificationChannelDestination.md) | | [optional] **destination_type** | **str, none_type** | | [optional] [readonly] diff --git a/gooddata-api-client/docs/EntitiesApi.md b/gooddata-api-client/docs/EntitiesApi.md index f56b09df9..d642e9f04 100644 --- a/gooddata-api-client/docs/EntitiesApi.md +++ b/gooddata-api-client/docs/EntitiesApi.md @@ -506,7 +506,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -531,6 +531,11 @@ with gooddata_api_client.ApiClient() as api_client: are_relations_valid=True, description="description_example", details=None, + external_recipients=[ + JsonApiAutomationInAttributesExternalRecipientsInner( + email="email_example", + ), + ], metadata={}, schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", @@ -1476,7 +1481,6 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -1635,6 +1639,7 @@ with gooddata_api_client.ApiClient() as api_client: provider="OPENAI", title="title_example", token="token_example", + workspace_ids=["demo","trial"], ), id="id1", type="llmEndpoint", @@ -1812,9 +1817,9 @@ with gooddata_api_client.ApiClient() as api_client: attributes=JsonApiNotificationChannelInAttributes( allowed_recipients="CREATOR", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="HIDDEN", description="description_example", destination=JsonApiNotificationChannelInAttributesDestination(None), - destination_type="WEBHOOK", in_platform_notification="DISABLED", name="name_example", ), @@ -2851,7 +2856,7 @@ with gooddata_api_client.ApiClient() as api_client: "include=parent", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) meta_include = [ - "metaInclude=permissions,config,hierarchy,dataModelDatasets,all", + "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", ] # [str] | Include Meta objects. (optional) # example passing only required values which don't have defaults set @@ -8036,7 +8041,7 @@ with gooddata_api_client.ApiClient() as api_client: "sort_example", ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional) meta_include = [ - "metaInclude=permissions,config,hierarchy,dataModelDatasets,page,all", + "metaInclude=config,permissions,hierarchy,dataModelDatasets,page,all", ] # [str] | Include Meta objects. (optional) # example passing only required values which don't have defaults set @@ -11222,7 +11227,7 @@ with gooddata_api_client.ApiClient() as api_client: "include=parent", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) meta_include = [ - "metaInclude=permissions,config,hierarchy,dataModelDatasets,all", + "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", ] # [str] | Include Meta objects. (optional) # example passing only required values which don't have defaults set @@ -11583,7 +11588,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -11608,6 +11613,11 @@ with gooddata_api_client.ApiClient() as api_client: are_relations_valid=True, description="description_example", details=None, + external_recipients=[ + JsonApiAutomationInAttributesExternalRecipientsInner( + email="email_example", + ), + ], metadata={}, schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", @@ -12664,14 +12674,13 @@ with gooddata_api_client.ApiClient() as api_client: id = "/6bUUGjjNSwg0_bs" # str | json_api_identity_provider_patch_document = JsonApiIdentityProviderPatchDocument( data=JsonApiIdentityProviderPatch( - attributes=JsonApiIdentityProviderInAttributes( + attributes=JsonApiIdentityProviderPatchAttributes( custom_claim_mapping={ "key": "key_example", }, identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -12856,6 +12865,7 @@ with gooddata_api_client.ApiClient() as api_client: provider="OPENAI", title="title_example", token="token_example", + workspace_ids=["demo","trial"], ), id="id1", type="llmEndpoint", @@ -13046,9 +13056,9 @@ with gooddata_api_client.ApiClient() as api_client: attributes=JsonApiNotificationChannelInAttributes( allowed_recipients="CREATOR", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="HIDDEN", description="description_example", destination=JsonApiNotificationChannelInAttributesDestination(None), - destination_type="WEBHOOK", in_platform_notification="DISABLED", name="name_example", ), @@ -14454,7 +14464,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -14479,6 +14489,11 @@ with gooddata_api_client.ApiClient() as api_client: are_relations_valid=True, description="description_example", details=None, + external_recipients=[ + JsonApiAutomationInAttributesExternalRecipientsInner( + email="email_example", + ), + ], metadata={}, schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", @@ -15542,7 +15557,6 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -15727,6 +15741,7 @@ with gooddata_api_client.ApiClient() as api_client: provider="OPENAI", title="title_example", token="token_example", + workspace_ids=["demo","trial"], ), id="id1", type="llmEndpoint", @@ -15917,9 +15932,9 @@ with gooddata_api_client.ApiClient() as api_client: attributes=JsonApiNotificationChannelInAttributes( allowed_recipients="CREATOR", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="HIDDEN", description="description_example", destination=JsonApiNotificationChannelInAttributesDestination(None), - destination_type="WEBHOOK", in_platform_notification="DISABLED", name="name_example", ), diff --git a/gooddata-api-client/docs/ExecutionLinks.md b/gooddata-api-client/docs/ExecutionLinks.md index 26be39a1a..5754b5a19 100644 --- a/gooddata-api-client/docs/ExecutionLinks.md +++ b/gooddata-api-client/docs/ExecutionLinks.md @@ -1,10 +1,11 @@ # ExecutionLinks +Links to the execution result. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**execution_result** | **str** | | +**execution_result** | **str** | Link to the result data. | **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/ExecutionResponse.md b/gooddata-api-client/docs/ExecutionResponse.md index 2d4847e27..575b7cd22 100644 --- a/gooddata-api-client/docs/ExecutionResponse.md +++ b/gooddata-api-client/docs/ExecutionResponse.md @@ -1,10 +1,11 @@ # ExecutionResponse +Response to AFM execution request body ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**dimensions** | [**[ResultDimension]**](ResultDimension.md) | | +**dimensions** | [**[ResultDimension]**](ResultDimension.md) | Dimensions of the result | **links** | [**ExecutionLinks**](ExecutionLinks.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] diff --git a/gooddata-api-client/docs/ExportRequest.md b/gooddata-api-client/docs/ExportRequest.md index 41d48dcc0..5da9129bc 100644 --- a/gooddata-api-client/docs/ExportRequest.md +++ b/gooddata-api-client/docs/ExportRequest.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **related_dashboard_id** | **str** | Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard. | [optional] **settings** | [**Settings**](Settings.md) | | [optional] **visualization_object** | **str** | Visualization object identifier. Alternative to executionResult property. | [optional] -**visualization_object_custom_filters** | **[{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]** | Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only) | [optional] +**visualization_object_custom_filters** | **[{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]** | Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. | [optional] **dashboard_id** | **str** | Dashboard identifier | [optional] **file_name** | **str** | Filename of downloaded file without extension. | [optional] **format** | **str** | Expected file format. | [optional] diff --git a/gooddata-api-client/docs/ExportResult.md b/gooddata-api-client/docs/ExportResult.md new file mode 100644 index 000000000..68bc038aa --- /dev/null +++ b/gooddata-api-client/docs/ExportResult.md @@ -0,0 +1,17 @@ +# ExportResult + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**export_id** | **str** | | +**file_name** | **str** | | +**status** | **str** | | +**error_message** | **str** | | [optional] +**file_uri** | **str** | | [optional] +**trace_id** | **str** | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/IdentityProvidersApi.md b/gooddata-api-client/docs/IdentityProvidersApi.md index 85e0ef8a6..b1a5a71c7 100644 --- a/gooddata-api-client/docs/IdentityProvidersApi.md +++ b/gooddata-api-client/docs/IdentityProvidersApi.md @@ -49,7 +49,6 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -415,14 +414,13 @@ with gooddata_api_client.ApiClient() as api_client: id = "/6bUUGjjNSwg0_bs" # str | json_api_identity_provider_patch_document = JsonApiIdentityProviderPatchDocument( data=JsonApiIdentityProviderPatch( - attributes=JsonApiIdentityProviderInAttributes( + attributes=JsonApiIdentityProviderPatchAttributes( custom_claim_mapping={ "key": "key_example", }, identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -517,7 +515,6 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -596,7 +593,6 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), diff --git a/gooddata-api-client/docs/InlineFilterDefinitionInline.md b/gooddata-api-client/docs/InlineFilterDefinitionInline.md index e1c212a9b..49adb1ef7 100644 --- a/gooddata-api-client/docs/InlineFilterDefinitionInline.md +++ b/gooddata-api-client/docs/InlineFilterDefinitionInline.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**filter** | **str** | | +**filter** | **str** | MAQL query representing the filter. | **apply_on_result** | **bool** | | [optional] **local_identifier** | **str** | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/InlineMeasureDefinitionInline.md b/gooddata-api-client/docs/InlineMeasureDefinitionInline.md index 9c4103ada..c7755b785 100644 --- a/gooddata-api-client/docs/InlineMeasureDefinitionInline.md +++ b/gooddata-api-client/docs/InlineMeasureDefinitionInline.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**maql** | **str** | | +**maql** | **str** | MAQL query defining the metric. | **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/gooddata-api-client/docs/JsonApiAutomationInAttributes.md b/gooddata-api-client/docs/JsonApiAutomationInAttributes.md index 812590bb5..8c324adac 100644 --- a/gooddata-api-client/docs/JsonApiAutomationInAttributes.md +++ b/gooddata-api-client/docs/JsonApiAutomationInAttributes.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes **are_relations_valid** | **bool** | | [optional] **description** | **str** | | [optional] **details** | **bool, date, datetime, dict, float, int, list, str, none_type** | Additional details to be included in the automated message. | [optional] +**external_recipients** | [**[JsonApiAutomationInAttributesExternalRecipientsInner]**](JsonApiAutomationInAttributesExternalRecipientsInner.md) | External recipients of the automation action results. | [optional] **metadata** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}, none_type** | Additional information for the automation. | [optional] **schedule** | [**JsonApiAutomationInAttributesSchedule**](JsonApiAutomationInAttributesSchedule.md) | | [optional] **state** | **str** | Current state of the automation. | [optional] diff --git a/gooddata-api-client/docs/JsonApiAutomationInAttributesExternalRecipientsInner.md b/gooddata-api-client/docs/JsonApiAutomationInAttributesExternalRecipientsInner.md new file mode 100644 index 000000000..5b1dc780f --- /dev/null +++ b/gooddata-api-client/docs/JsonApiAutomationInAttributesExternalRecipientsInner.md @@ -0,0 +1,12 @@ +# JsonApiAutomationInAttributesExternalRecipientsInner + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**email** | **str** | E-mail address to send notifications from. | +**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/JsonApiAutomationOutAttributes.md b/gooddata-api-client/docs/JsonApiAutomationOutAttributes.md index bbfbd4d29..764afd46c 100644 --- a/gooddata-api-client/docs/JsonApiAutomationOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiAutomationOutAttributes.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **created_at** | **datetime** | | [optional] **description** | **str** | | [optional] **details** | **bool, date, datetime, dict, float, int, list, str, none_type** | Additional details to be included in the automated message. | [optional] +**external_recipients** | [**[JsonApiAutomationInAttributesExternalRecipientsInner]**](JsonApiAutomationInAttributesExternalRecipientsInner.md) | External recipients of the automation action results. | [optional] **metadata** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}, none_type** | Additional information for the automation. | [optional] **modified_at** | **datetime** | | [optional] **schedule** | [**JsonApiAutomationInAttributesSchedule**](JsonApiAutomationInAttributesSchedule.md) | | [optional] diff --git a/gooddata-api-client/docs/JsonApiExportDefinitionInAttributesRequestPayload.md b/gooddata-api-client/docs/JsonApiExportDefinitionInAttributesRequestPayload.md index da040a83e..9f2cbe791 100644 --- a/gooddata-api-client/docs/JsonApiExportDefinitionInAttributesRequestPayload.md +++ b/gooddata-api-client/docs/JsonApiExportDefinitionInAttributesRequestPayload.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **related_dashboard_id** | **str** | Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard. | [optional] **settings** | [**Settings**](Settings.md) | | [optional] **visualization_object** | **str** | Visualization object identifier. Alternative to executionResult property. | [optional] -**visualization_object_custom_filters** | **[{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]** | Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only) | [optional] +**visualization_object_custom_filters** | **[{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]** | Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. | [optional] **dashboard_id** | **str** | Dashboard identifier | [optional] **file_name** | **str** | Filename of downloaded file without extension. | [optional] **format** | **str** | Expected file format. | [optional] diff --git a/gooddata-api-client/docs/JsonApiIdentityProviderIn.md b/gooddata-api-client/docs/JsonApiIdentityProviderIn.md index 93a68e92c..bfe50f746 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderIn.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderIn.md @@ -5,9 +5,9 @@ JSON:API representation of identityProvider entity. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**attributes** | [**JsonApiIdentityProviderInAttributes**](JsonApiIdentityProviderInAttributes.md) | | **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "identityProvider" -**attributes** | [**JsonApiIdentityProviderInAttributes**](JsonApiIdentityProviderInAttributes.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/JsonApiIdentityProviderInAttributes.md b/gooddata-api-client/docs/JsonApiIdentityProviderInAttributes.md index a76f10fa6..4ed21e167 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderInAttributes.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderInAttributes.md @@ -4,11 +4,10 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**identifiers** | **[str]** | List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. | **custom_claim_mapping** | **{str: (str,)}** | Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute. | [optional] -**identifiers** | **[str]** | List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. | [optional] **oauth_client_id** | **str** | The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] **oauth_client_secret** | **str** | The OAuth client secret of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] -**oauth_issuer_id** | **str** | Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider. | [optional] **oauth_issuer_location** | **str** | The location of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] **saml_metadata** | **str** | Base64 encoded xml document with SAML metadata. This document is issued by your SAML provider. It includes the issuer's name, expiration information, and keys that can be used to validate the response from the identity provider. This field is mandatory for SAML IdP. | [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/JsonApiIdentityProviderOut.md b/gooddata-api-client/docs/JsonApiIdentityProviderOut.md index f473f8b7a..45608885c 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderOut.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderOut.md @@ -5,9 +5,9 @@ JSON:API representation of identityProvider entity. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**attributes** | [**JsonApiIdentityProviderOutAttributes**](JsonApiIdentityProviderOutAttributes.md) | | **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "identityProvider" -**attributes** | [**JsonApiIdentityProviderOutAttributes**](JsonApiIdentityProviderOutAttributes.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/JsonApiIdentityProviderOutAttributes.md b/gooddata-api-client/docs/JsonApiIdentityProviderOutAttributes.md index 3c9eb0b14..d909d381e 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderOutAttributes.md @@ -4,10 +4,9 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**identifiers** | **[str]** | List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. | **custom_claim_mapping** | **{str: (str,)}** | Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute. | [optional] -**identifiers** | **[str]** | List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. | [optional] **oauth_client_id** | **str** | The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] -**oauth_issuer_id** | **str** | Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider. | [optional] **oauth_issuer_location** | **str** | The location of your OIDC provider. This field is mandatory for OIDC IdP. | [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/JsonApiIdentityProviderOutWithLinks.md b/gooddata-api-client/docs/JsonApiIdentityProviderOutWithLinks.md index 8b0d1468c..c459d05e0 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderOutWithLinks.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderOutWithLinks.md @@ -4,9 +4,9 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**attributes** | [**JsonApiIdentityProviderOutAttributes**](JsonApiIdentityProviderOutAttributes.md) | | **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "identityProvider" -**attributes** | [**JsonApiIdentityProviderOutAttributes**](JsonApiIdentityProviderOutAttributes.md) | | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/JsonApiIdentityProviderPatch.md b/gooddata-api-client/docs/JsonApiIdentityProviderPatch.md index eb78ac3da..b4d1f99b5 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderPatch.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderPatch.md @@ -5,9 +5,9 @@ JSON:API representation of patching identityProvider entity. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**attributes** | [**JsonApiIdentityProviderPatchAttributes**](JsonApiIdentityProviderPatchAttributes.md) | | **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "identityProvider" -**attributes** | [**JsonApiIdentityProviderInAttributes**](JsonApiIdentityProviderInAttributes.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/JsonApiIdentityProviderPatchAttributes.md b/gooddata-api-client/docs/JsonApiIdentityProviderPatchAttributes.md new file mode 100644 index 000000000..b39807853 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiIdentityProviderPatchAttributes.md @@ -0,0 +1,17 @@ +# JsonApiIdentityProviderPatchAttributes + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**custom_claim_mapping** | **{str: (str,)}** | Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute. | [optional] +**identifiers** | **[str]** | List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. | [optional] +**oauth_client_id** | **str** | The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] +**oauth_client_secret** | **str** | The OAuth client secret of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] +**oauth_issuer_location** | **str** | The location of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] +**saml_metadata** | **str** | Base64 encoded xml document with SAML metadata. This document is issued by your SAML provider. It includes the issuer's name, expiration information, and keys that can be used to validate the response from the identity provider. This field is mandatory for SAML IdP. | [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/JsonApiLlmEndpointInAttributes.md b/gooddata-api-client/docs/JsonApiLlmEndpointInAttributes.md index 85895147a..04c2d777e 100644 --- a/gooddata-api-client/docs/JsonApiLlmEndpointInAttributes.md +++ b/gooddata-api-client/docs/JsonApiLlmEndpointInAttributes.md @@ -6,11 +6,12 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **title** | **str** | User-facing title of the LLM Provider. | **token** | **str** | The token to use to connect to the LLM provider. | -**provider** | **str** | LLM Provider. | defaults to "OPENAI" **base_url** | **str, none_type** | Custom LLM endpoint. | [optional] **description** | **str, none_type** | User-facing description of the LLM Provider. | [optional] -**llm_model** | **str, none_type** | LLM Model. We provide a default model for each provider, but you can override it here. | [optional] +**llm_model** | **str** | LLM Model. We provide a default model for each provider, but you can override it here. | [optional] **llm_organization** | **str, none_type** | Organization in LLM provider. | [optional] +**provider** | **str** | LLM Provider. | [optional] if omitted the server will use the default value of "OPENAI" +**workspace_ids** | **[str]** | List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces. | [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/JsonApiLlmEndpointOutAttributes.md b/gooddata-api-client/docs/JsonApiLlmEndpointOutAttributes.md index b39af4f49..78d76b473 100644 --- a/gooddata-api-client/docs/JsonApiLlmEndpointOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiLlmEndpointOutAttributes.md @@ -5,11 +5,12 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **title** | **str** | User-facing title of the LLM Provider. | -**provider** | **str** | LLM Provider. | defaults to "OPENAI" **base_url** | **str, none_type** | Custom LLM endpoint. | [optional] **description** | **str, none_type** | User-facing description of the LLM Provider. | [optional] -**llm_model** | **str, none_type** | LLM Model. We provide a default model for each provider, but you can override it here. | [optional] +**llm_model** | **str** | LLM Model. We provide a default model for each provider, but you can override it here. | [optional] **llm_organization** | **str, none_type** | Organization in LLM provider. | [optional] +**provider** | **str** | LLM Provider. | [optional] if omitted the server will use the default value of "OPENAI" +**workspace_ids** | **[str]** | List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces. | [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/JsonApiLlmEndpointPatchAttributes.md b/gooddata-api-client/docs/JsonApiLlmEndpointPatchAttributes.md index 9f1f80348..1d6a89a33 100644 --- a/gooddata-api-client/docs/JsonApiLlmEndpointPatchAttributes.md +++ b/gooddata-api-client/docs/JsonApiLlmEndpointPatchAttributes.md @@ -6,11 +6,12 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **base_url** | **str, none_type** | Custom LLM endpoint. | [optional] **description** | **str, none_type** | User-facing description of the LLM Provider. | [optional] -**llm_model** | **str, none_type** | LLM Model. We provide a default model for each provider, but you can override it here. | [optional] +**llm_model** | **str** | LLM Model. We provide a default model for each provider, but you can override it here. | [optional] **llm_organization** | **str, none_type** | Organization in LLM provider. | [optional] **provider** | **str** | LLM Provider. | [optional] if omitted the server will use the default value of "OPENAI" **title** | **str** | User-facing title of the LLM Provider. | [optional] **token** | **str** | The token to use to connect to the LLM provider. | [optional] +**workspace_ids** | **[str]** | List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces. | [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/JsonApiNotificationChannelInAttributes.md b/gooddata-api-client/docs/JsonApiNotificationChannelInAttributes.md index e358ec723..a4431c7b8 100644 --- a/gooddata-api-client/docs/JsonApiNotificationChannelInAttributes.md +++ b/gooddata-api-client/docs/JsonApiNotificationChannelInAttributes.md @@ -4,11 +4,11 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**allowed_recipients** | **str** | Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization | [optional] +**allowed_recipients** | **str** | Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization | [optional] **custom_dashboard_url** | **str** | Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}. | [optional] +**dashboard_link_visibility** | **str** | Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link | [optional] **description** | **str, none_type** | | [optional] **destination** | [**JsonApiNotificationChannelInAttributesDestination**](JsonApiNotificationChannelInAttributesDestination.md) | | [optional] -**destination_type** | **str, none_type** | | [optional] **in_platform_notification** | **str** | In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications | [optional] **name** | **str, none_type** | | [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/JsonApiNotificationChannelOut.md b/gooddata-api-client/docs/JsonApiNotificationChannelOut.md index e31e9bbc4..edb97d0bc 100644 --- a/gooddata-api-client/docs/JsonApiNotificationChannelOut.md +++ b/gooddata-api-client/docs/JsonApiNotificationChannelOut.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "notificationChannel" -**attributes** | [**JsonApiNotificationChannelInAttributes**](JsonApiNotificationChannelInAttributes.md) | | [optional] +**attributes** | [**JsonApiNotificationChannelOutAttributes**](JsonApiNotificationChannelOutAttributes.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/JsonApiNotificationChannelOutAttributes.md b/gooddata-api-client/docs/JsonApiNotificationChannelOutAttributes.md new file mode 100644 index 000000000..85af938c5 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiNotificationChannelOutAttributes.md @@ -0,0 +1,19 @@ +# JsonApiNotificationChannelOutAttributes + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**allowed_recipients** | **str** | Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization | [optional] +**custom_dashboard_url** | **str** | Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}. | [optional] +**dashboard_link_visibility** | **str** | Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link | [optional] +**description** | **str, none_type** | | [optional] +**destination** | [**JsonApiNotificationChannelInAttributesDestination**](JsonApiNotificationChannelInAttributesDestination.md) | | [optional] +**destination_type** | **str, none_type** | | [optional] +**in_platform_notification** | **str** | In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications | [optional] +**name** | **str, none_type** | | [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/JsonApiNotificationChannelOutWithLinks.md b/gooddata-api-client/docs/JsonApiNotificationChannelOutWithLinks.md index e214432cf..c1d1bb8ce 100644 --- a/gooddata-api-client/docs/JsonApiNotificationChannelOutWithLinks.md +++ b/gooddata-api-client/docs/JsonApiNotificationChannelOutWithLinks.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "notificationChannel" -**attributes** | [**JsonApiNotificationChannelInAttributes**](JsonApiNotificationChannelInAttributes.md) | | [optional] +**attributes** | [**JsonApiNotificationChannelOutAttributes**](JsonApiNotificationChannelOutAttributes.md) | | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/LLMEndpointsApi.md b/gooddata-api-client/docs/LLMEndpointsApi.md index 2cf88ff4b..750b30d08 100644 --- a/gooddata-api-client/docs/LLMEndpointsApi.md +++ b/gooddata-api-client/docs/LLMEndpointsApi.md @@ -48,6 +48,7 @@ with gooddata_api_client.ApiClient() as api_client: provider="OPENAI", title="title_example", token="token_example", + workspace_ids=["demo","trial"], ), id="id1", type="llmEndpoint", @@ -354,6 +355,7 @@ with gooddata_api_client.ApiClient() as api_client: provider="OPENAI", title="title_example", token="token_example", + workspace_ids=["demo","trial"], ), id="id1", type="llmEndpoint", @@ -447,6 +449,7 @@ with gooddata_api_client.ApiClient() as api_client: provider="OPENAI", title="title_example", token="token_example", + workspace_ids=["demo","trial"], ), id="id1", type="llmEndpoint", diff --git a/gooddata-api-client/docs/LayoutApi.md b/gooddata-api-client/docs/LayoutApi.md index 22c46ed5e..efe303a0c 100644 --- a/gooddata-api-client/docs/LayoutApi.md +++ b/gooddata-api-client/docs/LayoutApi.md @@ -2416,7 +2416,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -2457,6 +2457,11 @@ with gooddata_api_client.ApiClient() as api_client: type="exportDefinition", ), ], + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], id="/6bUUGjjNSwg0_bs", metadata=JsonNode(), modified_at="2023-07-20 12:30", @@ -2781,7 +2786,6 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -3057,6 +3061,7 @@ with gooddata_api_client.ApiClient() as api_client: DeclarativeNotificationChannel( allowed_recipients="INTERNAL", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="INTERNAL_ONLY", description="This is a channel", destination=DeclarativeNotificationChannelDestination(None), id="notification-channel-1", @@ -3178,7 +3183,6 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -3193,6 +3197,7 @@ with gooddata_api_client.ApiClient() as api_client: DeclarativeNotificationChannel( allowed_recipients="INTERNAL", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="INTERNAL_ONLY", description="This is a channel", destination=DeclarativeNotificationChannelDestination(None), id="notification-channel-1", @@ -3350,7 +3355,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -3391,6 +3396,11 @@ with gooddata_api_client.ApiClient() as api_client: type="exportDefinition", ), ], + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], id="/6bUUGjjNSwg0_bs", metadata=JsonNode(), modified_at="2023-07-20 12:30", @@ -4435,7 +4445,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -4476,6 +4486,11 @@ with gooddata_api_client.ApiClient() as api_client: type="exportDefinition", ), ], + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], id="/6bUUGjjNSwg0_bs", metadata=JsonNode(), modified_at="2023-07-20 12:30", diff --git a/gooddata-api-client/docs/MeasureGroupHeaders.md b/gooddata-api-client/docs/MeasureGroupHeaders.md index 38d97fdcf..ef7c8243f 100644 --- a/gooddata-api-client/docs/MeasureGroupHeaders.md +++ b/gooddata-api-client/docs/MeasureGroupHeaders.md @@ -1,10 +1,13 @@ # MeasureGroupHeaders +Measure group headers ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**measure_group_headers** | [**[MeasureHeaderOut]**](MeasureHeaderOut.md) | | [optional] +**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] [[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/MeasureHeader.md b/gooddata-api-client/docs/MeasureHeader.md new file mode 100644 index 000000000..099900d6b --- /dev/null +++ b/gooddata-api-client/docs/MeasureHeader.md @@ -0,0 +1,14 @@ +# MeasureHeader + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**local_identifier** | **str** | Local identifier of the measure this header relates to. | +**format** | **str** | Format to be used to format the measure data. | [optional] +**name** | **str** | Name of the measure. | [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/MeasureItem.md b/gooddata-api-client/docs/MeasureItem.md index e68d82aef..7e6204059 100644 --- a/gooddata-api-client/docs/MeasureItem.md +++ b/gooddata-api-client/docs/MeasureItem.md @@ -1,11 +1,12 @@ # MeasureItem +Metric is a quantity that is calculated from the data. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **definition** | [**MeasureDefinition**](MeasureDefinition.md) | | -**local_identifier** | **str** | | +**local_identifier** | **str** | Local identifier of the metric. This can be used to reference the metric in other parts of the execution definition. | **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/MetricRecord.md b/gooddata-api-client/docs/MetricRecord.md new file mode 100644 index 000000000..8576cd2e9 --- /dev/null +++ b/gooddata-api-client/docs/MetricRecord.md @@ -0,0 +1,13 @@ +# MetricRecord + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | **float** | | +**formatted_value** | **str** | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/Notification.md b/gooddata-api-client/docs/Notification.md new file mode 100644 index 000000000..52cf44b1a --- /dev/null +++ b/gooddata-api-client/docs/Notification.md @@ -0,0 +1,17 @@ +# Notification + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**created_at** | **datetime** | | +**data** | [**NotificationData**](NotificationData.md) | | +**id** | **str** | | +**is_read** | **bool** | | +**automation_id** | **str** | | [optional] +**workspace_id** | **str** | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/NotificationChannelsApi.md b/gooddata-api-client/docs/NotificationChannelsApi.md index 32636a20f..76cb5a4a3 100644 --- a/gooddata-api-client/docs/NotificationChannelsApi.md +++ b/gooddata-api-client/docs/NotificationChannelsApi.md @@ -11,6 +11,8 @@ Method | HTTP request | Description [**get_notification_channels_layout**](NotificationChannelsApi.md#get_notification_channels_layout) | **GET** /api/v1/layout/notificationChannels | Get all notification channels layout [**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. +[**test_notification_channel**](NotificationChannelsApi.md#test_notification_channel) | **POST** /api/v1/actions/notificationChannels/test | Test notification channel. [**update_entity_notification_channels**](NotificationChannelsApi.md#update_entity_notification_channels) | **PUT** /api/v1/entities/notificationChannels/{id} | Put Notification Channel entity @@ -45,9 +47,9 @@ with gooddata_api_client.ApiClient() as api_client: attributes=JsonApiNotificationChannelInAttributes( allowed_recipients="CREATOR", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="HIDDEN", description="description_example", destination=JsonApiNotificationChannelInAttributesDestination(None), - destination_type="WEBHOOK", in_platform_notification="DISABLED", name="name_example", ), @@ -416,9 +418,9 @@ with gooddata_api_client.ApiClient() as api_client: attributes=JsonApiNotificationChannelInAttributes( allowed_recipients="CREATOR", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="HIDDEN", description="description_example", destination=JsonApiNotificationChannelInAttributesDestination(None), - destination_type="WEBHOOK", in_platform_notification="DISABLED", name="name_example", ), @@ -509,6 +511,7 @@ with gooddata_api_client.ApiClient() as api_client: DeclarativeNotificationChannel( allowed_recipients="INTERNAL", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="INTERNAL_ONLY", description="This is a channel", destination=DeclarativeNotificationChannelDestination(None), id="notification-channel-1", @@ -555,6 +558,157 @@ 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) +# **test_existing_notification_channel** +> TestResponse test_existing_notification_channel(notification_channel_id) + +Test existing notification channel. + +Tests the existing notification channel by sending a test notification. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import notification_channels_api +from gooddata_api_client.model.test_response import TestResponse +from gooddata_api_client.model.test_destination_request import TestDestinationRequest +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_channel_id = "notificationChannelId_example" # str | + test_destination_request = TestDestinationRequest( + destination=DeclarativeNotificationChannelDestination(None), + ) # TestDestinationRequest | (optional) + + # example passing only required values which don't have defaults set + try: + # Test existing notification channel. + api_response = api_instance.test_existing_notification_channel(notification_channel_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling NotificationChannelsApi->test_existing_notification_channel: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + # Test existing notification channel. + api_response = api_instance.test_existing_notification_channel(notification_channel_id, test_destination_request=test_destination_request) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling NotificationChannelsApi->test_existing_notification_channel: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **notification_channel_id** | **str**| | + **test_destination_request** | [**TestDestinationRequest**](TestDestinationRequest.md)| | [optional] + +### Return type + +[**TestResponse**](TestResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | The result of the test of a notification channel connection. | - | + +[[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) + +# **test_notification_channel** +> TestResponse test_notification_channel(test_destination_request) + +Test notification channel. + +Tests the notification channel by sending a test notification. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import notification_channels_api +from gooddata_api_client.model.test_response import TestResponse +from gooddata_api_client.model.test_destination_request import TestDestinationRequest +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) + test_destination_request = TestDestinationRequest( + destination=DeclarativeNotificationChannelDestination(None), + ) # TestDestinationRequest | + + # example passing only required values which don't have defaults set + try: + # Test notification channel. + api_response = api_instance.test_notification_channel(test_destination_request) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling NotificationChannelsApi->test_notification_channel: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **test_destination_request** | [**TestDestinationRequest**](TestDestinationRequest.md)| | + +### Return type + +[**TestResponse**](TestResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | The result of the test of a notification channel connection. | - | + +[[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_notification_channels** > JsonApiNotificationChannelOutDocument update_entity_notification_channels(id, json_api_notification_channel_in_document) @@ -587,9 +741,9 @@ with gooddata_api_client.ApiClient() as api_client: attributes=JsonApiNotificationChannelInAttributes( allowed_recipients="CREATOR", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="HIDDEN", description="description_example", destination=JsonApiNotificationChannelInAttributesDestination(None), - destination_type="WEBHOOK", in_platform_notification="DISABLED", name="name_example", ), diff --git a/gooddata-api-client/docs/NotificationContent.md b/gooddata-api-client/docs/NotificationContent.md new file mode 100644 index 000000000..d089295d3 --- /dev/null +++ b/gooddata-api-client/docs/NotificationContent.md @@ -0,0 +1,12 @@ +# NotificationContent + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/NotificationData.md b/gooddata-api-client/docs/NotificationData.md new file mode 100644 index 000000000..ddc8a753b --- /dev/null +++ b/gooddata-api-client/docs/NotificationData.md @@ -0,0 +1,14 @@ +# NotificationData + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | | +**message** | **str** | | [optional] +**content** | [**WebhookMessage**](WebhookMessage.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/Notifications.md b/gooddata-api-client/docs/Notifications.md new file mode 100644 index 000000000..0d81ec12d --- /dev/null +++ b/gooddata-api-client/docs/Notifications.md @@ -0,0 +1,13 @@ +# Notifications + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**[Notification]**](Notification.md) | | +**meta** | [**NotificationsMeta**](NotificationsMeta.md) | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/NotificationsMeta.md b/gooddata-api-client/docs/NotificationsMeta.md new file mode 100644 index 000000000..22ca9a348 --- /dev/null +++ b/gooddata-api-client/docs/NotificationsMeta.md @@ -0,0 +1,12 @@ +# NotificationsMeta + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**total** | [**NotificationsMetaTotal**](NotificationsMetaTotal.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/NotificationsMetaTotal.md b/gooddata-api-client/docs/NotificationsMetaTotal.md new file mode 100644 index 000000000..05104bb48 --- /dev/null +++ b/gooddata-api-client/docs/NotificationsMetaTotal.md @@ -0,0 +1,13 @@ +# NotificationsMetaTotal + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**all** | **int** | | +**unread** | **int** | | +**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/OrganizationDeclarativeAPIsApi.md b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md index c85ba5cea..626bfbe58 100644 --- a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md @@ -153,7 +153,6 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -168,6 +167,7 @@ with gooddata_api_client.ApiClient() as api_client: DeclarativeNotificationChannel( allowed_recipients="INTERNAL", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="INTERNAL_ONLY", description="This is a channel", destination=DeclarativeNotificationChannelDestination(None), id="notification-channel-1", @@ -325,7 +325,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -366,6 +366,11 @@ with gooddata_api_client.ApiClient() as api_client: type="exportDefinition", ), ], + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], id="/6bUUGjjNSwg0_bs", metadata=JsonNode(), modified_at="2023-07-20 12:30", diff --git a/gooddata-api-client/docs/OrganizationModelControllerApi.md b/gooddata-api-client/docs/OrganizationModelControllerApi.md index 49e59e460..fdde7c7e9 100644 --- a/gooddata-api-client/docs/OrganizationModelControllerApi.md +++ b/gooddata-api-client/docs/OrganizationModelControllerApi.md @@ -378,7 +378,6 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -537,6 +536,7 @@ with gooddata_api_client.ApiClient() as api_client: provider="OPENAI", title="title_example", token="token_example", + workspace_ids=["demo","trial"], ), id="id1", type="llmEndpoint", @@ -612,9 +612,9 @@ with gooddata_api_client.ApiClient() as api_client: attributes=JsonApiNotificationChannelInAttributes( allowed_recipients="CREATOR", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="HIDDEN", description="description_example", destination=JsonApiNotificationChannelInAttributesDestination(None), - destination_type="WEBHOOK", in_platform_notification="DISABLED", name="name_example", ), @@ -1071,7 +1071,7 @@ with gooddata_api_client.ApiClient() as api_client: "include=parent", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) meta_include = [ - "metaInclude=permissions,config,hierarchy,dataModelDatasets,all", + "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", ] # [str] | Include Meta objects. (optional) # example passing only required values which don't have defaults set @@ -3160,7 +3160,7 @@ with gooddata_api_client.ApiClient() as api_client: "sort_example", ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional) meta_include = [ - "metaInclude=permissions,config,hierarchy,dataModelDatasets,page,all", + "metaInclude=config,permissions,hierarchy,dataModelDatasets,page,all", ] # [str] | Include Meta objects. (optional) # example passing only required values which don't have defaults set @@ -4334,7 +4334,7 @@ with gooddata_api_client.ApiClient() as api_client: "include=parent", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) meta_include = [ - "metaInclude=permissions,config,hierarchy,dataModelDatasets,all", + "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", ] # [str] | Include Meta objects. (optional) # example passing only required values which don't have defaults set @@ -4701,14 +4701,13 @@ with gooddata_api_client.ApiClient() as api_client: id = "/6bUUGjjNSwg0_bs" # str | json_api_identity_provider_patch_document = JsonApiIdentityProviderPatchDocument( data=JsonApiIdentityProviderPatch( - attributes=JsonApiIdentityProviderInAttributes( + attributes=JsonApiIdentityProviderPatchAttributes( custom_claim_mapping={ "key": "key_example", }, identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -4893,6 +4892,7 @@ with gooddata_api_client.ApiClient() as api_client: provider="OPENAI", title="title_example", token="token_example", + workspace_ids=["demo","trial"], ), id="id1", type="llmEndpoint", @@ -4981,9 +4981,9 @@ with gooddata_api_client.ApiClient() as api_client: attributes=JsonApiNotificationChannelInAttributes( allowed_recipients="CREATOR", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="HIDDEN", description="description_example", destination=JsonApiNotificationChannelInAttributesDestination(None), - destination_type="WEBHOOK", in_platform_notification="DISABLED", name="name_example", ), @@ -5859,7 +5859,6 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", - oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", saml_metadata="saml_metadata_example", ), @@ -6044,6 +6043,7 @@ with gooddata_api_client.ApiClient() as api_client: provider="OPENAI", title="title_example", token="token_example", + workspace_ids=["demo","trial"], ), id="id1", type="llmEndpoint", @@ -6132,9 +6132,9 @@ with gooddata_api_client.ApiClient() as api_client: attributes=JsonApiNotificationChannelInAttributes( allowed_recipients="CREATOR", custom_dashboard_url="custom_dashboard_url_example", + dashboard_link_visibility="HIDDEN", description="description_example", destination=JsonApiNotificationChannelInAttributesDestination(None), - destination_type="WEBHOOK", in_platform_notification="DISABLED", name="name_example", ), diff --git a/gooddata-api-client/docs/PopDataset.md b/gooddata-api-client/docs/PopDataset.md index 5ca93b2f9..4ddba96cc 100644 --- a/gooddata-api-client/docs/PopDataset.md +++ b/gooddata-api-client/docs/PopDataset.md @@ -1,11 +1,12 @@ # PopDataset +Combination of the date data set to use and how many periods ago to calculate the previous period for. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **dataset** | [**AfmObjectIdentifierDataset**](AfmObjectIdentifierDataset.md) | | -**periods_ago** | **int** | | +**periods_ago** | **int** | Number of periods ago to calculate the previous period for. | **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/PopDatasetMeasureDefinitionPreviousPeriodMeasure.md b/gooddata-api-client/docs/PopDatasetMeasureDefinitionPreviousPeriodMeasure.md index a5d5abe03..1c69a1c35 100644 --- a/gooddata-api-client/docs/PopDatasetMeasureDefinitionPreviousPeriodMeasure.md +++ b/gooddata-api-client/docs/PopDatasetMeasureDefinitionPreviousPeriodMeasure.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**date_datasets** | [**[PopDataset]**](PopDataset.md) | | +**date_datasets** | [**[PopDataset]**](PopDataset.md) | Specification of which date data sets to use for determining the period to calculate the previous period for. | **measure_identifier** | [**AfmLocalIdentifier**](AfmLocalIdentifier.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] diff --git a/gooddata-api-client/docs/PopDate.md b/gooddata-api-client/docs/PopDate.md index fcd45fb37..8fae19a34 100644 --- a/gooddata-api-client/docs/PopDate.md +++ b/gooddata-api-client/docs/PopDate.md @@ -1,11 +1,12 @@ # PopDate +Combination of the date attribute to use and how many periods ago to calculate the PoP for. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **attribute** | [**AfmObjectIdentifierAttribute**](AfmObjectIdentifierAttribute.md) | | -**periods_ago** | **int** | | +**periods_ago** | **int** | Number of periods ago to calculate the previous period for. | **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/PopDateMeasureDefinitionOverPeriodMeasure.md b/gooddata-api-client/docs/PopDateMeasureDefinitionOverPeriodMeasure.md index b240b5ba2..2c95b3909 100644 --- a/gooddata-api-client/docs/PopDateMeasureDefinitionOverPeriodMeasure.md +++ b/gooddata-api-client/docs/PopDateMeasureDefinitionOverPeriodMeasure.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**date_attributes** | [**[PopDate]**](PopDate.md) | | +**date_attributes** | [**[PopDate]**](PopDate.md) | Attributes to use for determining the period to calculate the PoP for. | **measure_identifier** | [**AfmLocalIdentifier**](AfmLocalIdentifier.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] diff --git a/gooddata-api-client/docs/RangeMeasureValueFilterRangeMeasureValueFilter.md b/gooddata-api-client/docs/RangeMeasureValueFilterRangeMeasureValueFilter.md index b22709cd2..fed71711f 100644 --- a/gooddata-api-client/docs/RangeMeasureValueFilterRangeMeasureValueFilter.md +++ b/gooddata-api-client/docs/RangeMeasureValueFilterRangeMeasureValueFilter.md @@ -9,8 +9,9 @@ Name | Type | Description | Notes **operator** | **str** | | **to** | **float** | | **apply_on_result** | **bool** | | [optional] +**dimensionality** | [**[AfmIdentifier]**](AfmIdentifier.md) | References to the attributes to be used when filtering. | [optional] **local_identifier** | **str** | | [optional] -**treat_null_values_as** | **float** | | [optional] +**treat_null_values_as** | **float** | A value that will be substituted for null values in the metric for the comparisons. | [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/RankingFilterRankingFilter.md b/gooddata-api-client/docs/RankingFilterRankingFilter.md index d9a12acda..d3b134682 100644 --- a/gooddata-api-client/docs/RankingFilterRankingFilter.md +++ b/gooddata-api-client/docs/RankingFilterRankingFilter.md @@ -4,10 +4,11 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**measures** | [**[AfmIdentifier]**](AfmIdentifier.md) | | -**operator** | **str** | | -**value** | **int** | | +**measures** | [**[AfmIdentifier]**](AfmIdentifier.md) | References to the metrics to be used when filtering. | +**operator** | **str** | The type of ranking to use, TOP or BOTTOM. | +**value** | **int** | Number of top/bottom values to filter. | **apply_on_result** | **bool** | | [optional] +**dimensionality** | [**[AfmIdentifier]**](AfmIdentifier.md) | References to the attributes to be used when filtering. | [optional] **local_identifier** | **str** | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/ResultDimension.md b/gooddata-api-client/docs/ResultDimension.md index 72c439474..034aea678 100644 --- a/gooddata-api-client/docs/ResultDimension.md +++ b/gooddata-api-client/docs/ResultDimension.md @@ -1,11 +1,12 @@ # ResultDimension +Single result dimension ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **headers** | [**[ResultDimensionHeader]**](ResultDimensionHeader.md) | | -**local_identifier** | **str** | | +**local_identifier** | **str** | Local identifier of the dimension. | **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 ecd3d21f1..07b7ab83b 100644 --- a/gooddata-api-client/docs/ResultDimensionHeader.md +++ b/gooddata-api-client/docs/ResultDimensionHeader.md @@ -1,11 +1,14 @@ # ResultDimensionHeader +One of the headers in a result dimension. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**measure_group_headers** | [**[MeasureHeaderOut]**](MeasureHeaderOut.md) | | [optional] -**attribute_header** | [**AttributeHeaderOutAttributeHeader**](AttributeHeaderOutAttributeHeader.md) | | [optional] +**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] [[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/RouteResult.md b/gooddata-api-client/docs/RouteResult.md index bcac81e2e..488c7e549 100644 --- a/gooddata-api-client/docs/RouteResult.md +++ b/gooddata-api-client/docs/RouteResult.md @@ -1,5 +1,6 @@ # RouteResult +Question -> Use Case routing. May contain final answer is a special use case is not required. ## Properties Name | Type | Description | Notes diff --git a/gooddata-api-client/docs/SimpleMeasureDefinition.md b/gooddata-api-client/docs/SimpleMeasureDefinition.md index a7d9c7c9c..1561b7cab 100644 --- a/gooddata-api-client/docs/SimpleMeasureDefinition.md +++ b/gooddata-api-client/docs/SimpleMeasureDefinition.md @@ -1,5 +1,6 @@ # SimpleMeasureDefinition +Metric defined by referencing a MAQL metric or an LDM fact object with aggregation. ## Properties Name | Type | Description | Notes diff --git a/gooddata-api-client/docs/SimpleMeasureDefinitionMeasure.md b/gooddata-api-client/docs/SimpleMeasureDefinitionMeasure.md index fbc93fb0a..e9492a8a9 100644 --- a/gooddata-api-client/docs/SimpleMeasureDefinitionMeasure.md +++ b/gooddata-api-client/docs/SimpleMeasureDefinitionMeasure.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **item** | [**AfmObjectIdentifierCore**](AfmObjectIdentifierCore.md) | | **aggregation** | **str** | Definition of aggregation type of the metric. | [optional] -**compute_ratio** | **bool** | If true compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down). | [optional] if omitted the server will use the default value of False +**compute_ratio** | **bool** | If true, compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down). | [optional] if omitted the server will use the default value of False **filters** | [**[FilterDefinitionForSimpleMeasure]**](FilterDefinitionForSimpleMeasure.md) | Metrics can be filtered by attribute filters with the same interface as ones for global AFM. Note that only one DateFilter is allowed. | [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/SmartFunctionsApi.md b/gooddata-api-client/docs/SmartFunctionsApi.md index 460e35ad8..2c3282164 100644 --- a/gooddata-api-client/docs/SmartFunctionsApi.md +++ b/gooddata-api-client/docs/SmartFunctionsApi.md @@ -7,7 +7,6 @@ Method | HTTP request | Description [**ai_chat**](SmartFunctionsApi.md#ai_chat) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chat | (BETA) Chat with AI [**ai_chat_history**](SmartFunctionsApi.md#ai_chat_history) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chatHistory | (BETA) Get Chat History [**ai_chat_stream**](SmartFunctionsApi.md#ai_chat_stream) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/chatStream | (BETA) Chat with AI -[**ai_route**](SmartFunctionsApi.md#ai_route) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/route | (BETA) Route to supported use cases based on this input query. [**ai_search**](SmartFunctionsApi.md#ai_search) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/search | (BETA) Semantic Search in Metadata [**anomaly_detection**](SmartFunctionsApi.md#anomaly_detection) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/anomalyDetection/{resultId} | (EXPERIMENTAL) Smart functions - Anomaly Detection [**anomaly_detection_result**](SmartFunctionsApi.md#anomaly_detection_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/functions/anomalyDetection/result/{resultId} | (EXPERIMENTAL) Smart functions - Anomaly Detection Result @@ -255,78 +254,6 @@ No authorization required - **Accept**: text/event-stream -### 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) - -# **ai_route** -> RouteResult ai_route(workspace_id, route_request) - -(BETA) Route to supported use cases based on this input query. - -(BETA) Uses similarity (e.g. cosine distance) to find most similar use cases. - -### Example - - -```python -import time -import gooddata_api_client -from gooddata_api_client.api import smart_functions_api -from gooddata_api_client.model.route_result import RouteResult -from gooddata_api_client.model.route_request import RouteRequest -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 = smart_functions_api.SmartFunctionsApi(api_client) - workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier - route_request = RouteRequest( - question="question_example", - ) # RouteRequest | - - # example passing only required values which don't have defaults set - try: - # (BETA) Route to supported use cases based on this input query. - api_response = api_instance.ai_route(workspace_id, route_request) - pprint(api_response) - except gooddata_api_client.ApiException as e: - print("Exception when calling SmartFunctionsApi->ai_route: %s\n" % e) -``` - - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **workspace_id** | **str**| Workspace identifier | - **route_request** | [**RouteRequest**](RouteRequest.md)| | - -### Return type - -[**RouteResult**](RouteResult.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - ### HTTP response details | Status code | Description | Response headers | diff --git a/gooddata-api-client/docs/SortKeyAttributeAttribute.md b/gooddata-api-client/docs/SortKeyAttributeAttribute.md index 0142644f9..b29c71196 100644 --- a/gooddata-api-client/docs/SortKeyAttributeAttribute.md +++ b/gooddata-api-client/docs/SortKeyAttributeAttribute.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **attribute_identifier** | **str** | Item reference (to 'itemIdentifiers') referencing, which item should be used for sorting. Only references to attributes are allowed. | **direction** | **str** | Sorting elements - ascending/descending order. | [optional] -**sort_type** | **str** | Mechanism by which this attribute should be sorted. Available options are: - DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) - LABEL: sorting by this label values - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) - AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions. | [optional] if omitted the server will use the default value of "DEFAULT" +**sort_type** | **str** | Mechanism by which this attribute should be sorted. Available options are: - DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) - LABEL: sorting by this label values - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label)- AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions. | [optional] if omitted the server will use the default value of "DEFAULT" **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/SortKeyTotalTotal.md b/gooddata-api-client/docs/SortKeyTotalTotal.md index f035bf0e6..37340dc5d 100644 --- a/gooddata-api-client/docs/SortKeyTotalTotal.md +++ b/gooddata-api-client/docs/SortKeyTotalTotal.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**total_identifier** | **str** | | +**total_identifier** | **str** | Local identifier of the total to sort by. | **data_column_locators** | [**DataColumnLocators**](DataColumnLocators.md) | | [optional] **direction** | **str** | Sorting elements - ascending/descending order. | [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 new file mode 100644 index 000000000..926022e25 --- /dev/null +++ b/gooddata-api-client/docs/Suggestion.md @@ -0,0 +1,14 @@ +# Suggestion + +Suggestions for next steps + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**label** | **str** | Suggestion button label | +**query** | **str** | Suggestion query | +**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/TabularExportApi.md b/gooddata-api-client/docs/TabularExportApi.md index 958375b21..544cc3218 100644 --- a/gooddata-api-client/docs/TabularExportApi.md +++ b/gooddata-api-client/docs/TabularExportApi.md @@ -4,10 +4,80 @@ All URIs are relative to *http://localhost* Method | HTTP request | Description ------------- | ------------- | ------------- +[**create_dashboard_export_request**](TabularExportApi.md#create_dashboard_export_request) | **POST** /api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/export/tabular | (EXPERIMENTAL) Create dashboard tabular export request [**create_tabular_export**](TabularExportApi.md#create_tabular_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/tabular | Create tabular export request [**get_tabular_export**](TabularExportApi.md#get_tabular_export) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/tabular/{exportId} | Retrieve exported files +# **create_dashboard_export_request** +> ExportResponse create_dashboard_export_request(workspace_id, dashboard_id) + +(EXPERIMENTAL) Create dashboard tabular export request + +Note: This API is an experimental and is going to change. Please, use it accordingly.An tabular export job will be created based on the export request and put to queue to be executed. The result of the operation will be an exportResult identifier that will be assembled by the client into a url that can be polled. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import tabular_export_api +from gooddata_api_client.model.export_response import ExportResponse +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 = tabular_export_api.TabularExportApi(api_client) + workspace_id = "workspaceId_example" # str | + dashboard_id = "dashboardId_example" # str | + + # example passing only required values which don't have defaults set + try: + # (EXPERIMENTAL) Create dashboard tabular export request + api_response = api_instance.create_dashboard_export_request(workspace_id, dashboard_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling TabularExportApi->create_dashboard_export_request: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| | + **dashboard_id** | **str**| | + +### Return type + +[**ExportResponse**](ExportResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Tabular export request created successfully. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **create_tabular_export** > ExportResponse create_tabular_export(workspace_id, tabular_export_request) diff --git a/gooddata-api-client/docs/TabularExportRequest.md b/gooddata-api-client/docs/TabularExportRequest.md index 16fb2c7e2..326b11cec 100644 --- a/gooddata-api-client/docs/TabularExportRequest.md +++ b/gooddata-api-client/docs/TabularExportRequest.md @@ -13,7 +13,7 @@ Name | Type | Description | Notes **related_dashboard_id** | **str** | Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard. | [optional] **settings** | [**Settings**](Settings.md) | | [optional] **visualization_object** | **str** | Visualization object identifier. Alternative to executionResult property. | [optional] -**visualization_object_custom_filters** | **[{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]** | Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only) | [optional] +**visualization_object_custom_filters** | **[{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]** | Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. | [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/TestDestinationRequest.md b/gooddata-api-client/docs/TestDestinationRequest.md new file mode 100644 index 000000000..47493a751 --- /dev/null +++ b/gooddata-api-client/docs/TestDestinationRequest.md @@ -0,0 +1,13 @@ +# TestDestinationRequest + +Request body with notification channel destination to test. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**destination** | [**DeclarativeNotificationChannelDestination**](DeclarativeNotificationChannelDestination.md) | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/TestNotification.md b/gooddata-api-client/docs/TestNotification.md new file mode 100644 index 000000000..de23cc1fd --- /dev/null +++ b/gooddata-api-client/docs/TestNotification.md @@ -0,0 +1,13 @@ +# TestNotification + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**message** | **str** | | +**type** | **str** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/TestNotificationAllOf.md b/gooddata-api-client/docs/TestNotificationAllOf.md new file mode 100644 index 000000000..caaf725dc --- /dev/null +++ b/gooddata-api-client/docs/TestNotificationAllOf.md @@ -0,0 +1,12 @@ +# TestNotificationAllOf + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**message** | **str** | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/WebhookAutomationInfo.md b/gooddata-api-client/docs/WebhookAutomationInfo.md new file mode 100644 index 000000000..cb90da236 --- /dev/null +++ b/gooddata-api-client/docs/WebhookAutomationInfo.md @@ -0,0 +1,15 @@ +# WebhookAutomationInfo + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**dashboard_url** | **str** | | +**id** | **str** | | +**is_custom_dashboard_url** | **bool** | | +**title** | **str** | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/WebhookMessage.md b/gooddata-api-client/docs/WebhookMessage.md new file mode 100644 index 000000000..a830c99d9 --- /dev/null +++ b/gooddata-api-client/docs/WebhookMessage.md @@ -0,0 +1,14 @@ +# WebhookMessage + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**WebhookMessageData**](WebhookMessageData.md) | | +**timestamp** | **str** | | +**type** | **str** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/WebhookMessageData.md b/gooddata-api-client/docs/WebhookMessageData.md new file mode 100644 index 000000000..b1fa3b4be --- /dev/null +++ b/gooddata-api-client/docs/WebhookMessageData.md @@ -0,0 +1,18 @@ +# WebhookMessageData + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**automation** | [**WebhookAutomationInfo**](WebhookAutomationInfo.md) | | +**alert** | [**AlertDescription**](AlertDescription.md) | | [optional] +**details** | **{str: (str,)}** | | [optional] +**recipients** | [**[WebhookRecipient]**](WebhookRecipient.md) | | [optional] +**remaining_action_count** | **int** | | [optional] +**tabular_exports** | [**[ExportResult]**](ExportResult.md) | | [optional] +**visual_exports** | [**[ExportResult]**](ExportResult.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/WebhookRecipient.md b/gooddata-api-client/docs/WebhookRecipient.md new file mode 100644 index 000000000..b0406a784 --- /dev/null +++ b/gooddata-api-client/docs/WebhookRecipient.md @@ -0,0 +1,13 @@ +# WebhookRecipient + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**email** | **str** | | +**id** | **str** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/WorkspaceObjectControllerApi.md b/gooddata-api-client/docs/WorkspaceObjectControllerApi.md index 317d4da6c..f890905d1 100644 --- a/gooddata-api-client/docs/WorkspaceObjectControllerApi.md +++ b/gooddata-api-client/docs/WorkspaceObjectControllerApi.md @@ -337,7 +337,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -362,6 +362,11 @@ with gooddata_api_client.ApiClient() as api_client: are_relations_valid=True, description="description_example", details=None, + external_recipients=[ + JsonApiAutomationInAttributesExternalRecipientsInner( + email="email_example", + ), + ], metadata={}, schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", @@ -6200,7 +6205,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -6225,6 +6230,11 @@ with gooddata_api_client.ApiClient() as api_client: are_relations_valid=True, description="description_example", details=None, + external_recipients=[ + JsonApiAutomationInAttributesExternalRecipientsInner( + email="email_example", + ), + ], metadata={}, schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", @@ -7724,7 +7734,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -7749,6 +7759,11 @@ with gooddata_api_client.ApiClient() as api_client: are_relations_valid=True, description="description_example", details=None, + external_recipients=[ + JsonApiAutomationInAttributesExternalRecipientsInner( + email="email_example", + ), + ], metadata={}, schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", diff --git a/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md b/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md index 6104071f6..3c34ca84e 100644 --- a/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md @@ -564,7 +564,7 @@ with gooddata_api_client.ApiClient() as api_client: type="label", ), ), - local_identifier="2", + local_identifier="attribute_1", show_all_values=False, ), ], @@ -605,6 +605,11 @@ with gooddata_api_client.ApiClient() as api_client: type="exportDefinition", ), ], + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], id="/6bUUGjjNSwg0_bs", metadata=JsonNode(), modified_at="2023-07-20 12:30", diff --git a/gooddata-api-client/docs/WorkspacesEntityAPIsApi.md b/gooddata-api-client/docs/WorkspacesEntityAPIsApi.md index c6505b0be..93b96df01 100644 --- a/gooddata-api-client/docs/WorkspacesEntityAPIsApi.md +++ b/gooddata-api-client/docs/WorkspacesEntityAPIsApi.md @@ -71,7 +71,7 @@ with gooddata_api_client.ApiClient() as api_client: "include=parent", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) meta_include = [ - "metaInclude=permissions,config,hierarchy,dataModelDatasets,all", + "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", ] # [str] | Include Meta objects. (optional) # example passing only required values which don't have defaults set @@ -235,7 +235,7 @@ with gooddata_api_client.ApiClient() as api_client: "sort_example", ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional) meta_include = [ - "metaInclude=permissions,config,hierarchy,dataModelDatasets,page,all", + "metaInclude=config,permissions,hierarchy,dataModelDatasets,page,all", ] # [str] | Include Meta objects. (optional) # example passing only required values which don't have defaults set @@ -315,7 +315,7 @@ with gooddata_api_client.ApiClient() as api_client: "include=parent", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) meta_include = [ - "metaInclude=permissions,config,hierarchy,dataModelDatasets,all", + "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", ] # [str] | Include Meta objects. (optional) # example passing only required values which don't have defaults set 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 ab51c6d00..cf35af066 100644 --- a/gooddata-api-client/gooddata_api_client/api/actions_api.py +++ b/gooddata-api-client/gooddata_api_client/api/actions_api.py @@ -61,14 +61,13 @@ from gooddata_api_client.model.key_drivers_result import KeyDriversResult from gooddata_api_client.model.locale_request import LocaleRequest from gooddata_api_client.model.manage_dashboard_permissions_request_inner import ManageDashboardPermissionsRequestInner +from gooddata_api_client.model.notifications import Notifications from gooddata_api_client.model.organization_permission_assignment import OrganizationPermissionAssignment from gooddata_api_client.model.platform_usage import PlatformUsage from gooddata_api_client.model.platform_usage_request import PlatformUsageRequest from gooddata_api_client.model.resolve_settings_request import ResolveSettingsRequest from gooddata_api_client.model.resolved_setting import ResolvedSetting from gooddata_api_client.model.result_cache_metadata import ResultCacheMetadata -from gooddata_api_client.model.route_request import RouteRequest -from gooddata_api_client.model.route_result import RouteResult from gooddata_api_client.model.scan_request import ScanRequest from gooddata_api_client.model.scan_result_pdm import ScanResultPdm from gooddata_api_client.model.scan_sql_request import ScanSqlRequest @@ -78,6 +77,7 @@ from gooddata_api_client.model.smart_function_response import SmartFunctionResponse from gooddata_api_client.model.tabular_export_request import TabularExportRequest from gooddata_api_client.model.test_definition_request import TestDefinitionRequest +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.visual_export_request import VisualExportRequest @@ -287,69 +287,6 @@ def __init__(self, api_client=None): }, api_client=api_client ) - self.ai_route_endpoint = _Endpoint( - settings={ - 'response_type': (RouteResult,), - 'auth': [], - 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/ai/route', - 'operation_id': 'ai_route', - 'http_method': 'POST', - 'servers': None, - }, - params_map={ - 'all': [ - 'workspace_id', - 'route_request', - ], - 'required': [ - 'workspace_id', - 'route_request', - ], - 'nullable': [ - ], - 'enum': [ - ], - 'validation': [ - 'workspace_id', - ] - }, - root_map={ - 'validations': { - ('workspace_id',): { - - 'regex': { - 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 - }, - }, - }, - 'allowed_values': { - }, - 'openapi_types': { - 'workspace_id': - (str,), - 'route_request': - (RouteRequest,), - }, - 'attribute_map': { - 'workspace_id': 'workspaceId', - }, - 'location_map': { - 'workspace_id': 'path', - 'route_request': 'body', - }, - 'collection_format_map': { - } - }, - headers_map={ - 'accept': [ - 'application/json' - ], - 'content_type': [ - 'application/json' - ] - }, - api_client=api_client - ) self.ai_search_endpoint = _Endpoint( settings={ 'response_type': (SearchResult,), @@ -1257,6 +1194,61 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.create_dashboard_export_request_endpoint = _Endpoint( + settings={ + 'response_type': (ExportResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/export/tabular', + 'operation_id': 'create_dashboard_export_request', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'dashboard_id', + ], + 'required': [ + 'workspace_id', + 'dashboard_id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'dashboard_id': + (str,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'dashboard_id': 'dashboardId', + }, + 'location_map': { + 'workspace_id': 'path', + 'dashboard_id': 'path', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [], + }, + api_client=api_client + ) self.create_pdf_export_endpoint = _Endpoint( settings={ 'response_type': (ExportResponse,), @@ -1982,6 +1974,92 @@ 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.get_tabular_export_endpoint = _Endpoint( settings={ 'response_type': None, @@ -2671,6 +2749,98 @@ def __init__(self, api_client=None): }, 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.metadata_sync_endpoint = _Endpoint( settings={ 'response_type': None, @@ -3579,13 +3749,118 @@ def __init__(self, api_client=None): }, api_client=api_client ) - self.unsubscribe_all_automations_endpoint = _Endpoint( + self.test_existing_notification_channel_endpoint = _Endpoint( settings={ - 'response_type': None, + 'response_type': (TestResponse,), 'auth': [], - 'endpoint_path': '/api/v1/actions/organization/automations/unsubscribe', - 'operation_id': 'unsubscribe_all_automations', - 'http_method': 'DELETE', + 'endpoint_path': '/api/v1/actions/notificationChannels/{notificationChannelId}/test', + 'operation_id': 'test_existing_notification_channel', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'notification_channel_id', + 'test_destination_request', + ], + 'required': [ + 'notification_channel_id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'notification_channel_id': + (str,), + 'test_destination_request': + (TestDestinationRequest,), + }, + 'attribute_map': { + 'notification_channel_id': 'notificationChannelId', + }, + 'location_map': { + 'notification_channel_id': 'path', + 'test_destination_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) + self.test_notification_channel_endpoint = _Endpoint( + settings={ + 'response_type': (TestResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/notificationChannels/test', + 'operation_id': 'test_notification_channel', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'test_destination_request', + ], + 'required': [ + 'test_destination_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'test_destination_request': + (TestDestinationRequest,), + }, + 'attribute_map': { + }, + 'location_map': { + 'test_destination_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) + self.unsubscribe_all_automations_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/actions/organization/automations/unsubscribe', + 'operation_id': 'unsubscribe_all_automations', + 'http_method': 'DELETE', 'servers': None, }, params_map={ @@ -4086,93 +4361,6 @@ def ai_chat_stream( chat_request return self.ai_chat_stream_endpoint.call_with_http_info(**kwargs) - def ai_route( - self, - workspace_id, - route_request, - **kwargs - ): - """(BETA) Route to supported use cases based on this input query. # noqa: E501 - - (BETA) Uses similarity (e.g. cosine distance) to find most similar use cases. # noqa: E501 - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - - >>> thread = api.ai_route(workspace_id, route_request, async_req=True) - >>> result = thread.get() - - Args: - workspace_id (str): Workspace identifier - route_request (RouteRequest): - - 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: - RouteResult - 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['route_request'] = \ - route_request - return self.ai_route_endpoint.call_with_http_info(**kwargs) - def ai_search( self, workspace_id, @@ -5400,6 +5588,93 @@ def compute_valid_objects( afm_valid_objects_query return self.compute_valid_objects_endpoint.call_with_http_info(**kwargs) + def create_dashboard_export_request( + self, + workspace_id, + dashboard_id, + **kwargs + ): + """(EXPERIMENTAL) Create dashboard tabular export request # noqa: E501 + + Note: This API is an experimental and is going to change. Please, use it accordingly.An tabular export job will be created based on the export request and put to queue to be executed. The result of the operation will be an exportResult identifier that will be assembled by the client into a url that can be polled. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.create_dashboard_export_request(workspace_id, dashboard_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + dashboard_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: + ExportResponse + 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['dashboard_id'] = \ + dashboard_id + return self.create_dashboard_export_request_endpoint.call_with_http_info(**kwargs) + def create_pdf_export( self, workspace_id, @@ -6443,23 +6718,106 @@ def get_metadata( export_id return self.get_metadata_endpoint.call_with_http_info(**kwargs) - def get_tabular_export( + def get_notifications( self, - workspace_id, - export_id, **kwargs ): - """Retrieve exported files # noqa: E501 + """Get latest notifications. # noqa: E501 - After clients creates a POST export request, the processing of it will start shortly asynchronously. To retrieve the result, client has to check periodically for the result on this endpoint. In case the result isn't ready yet, the service returns 202. If the result is ready, it returns 200 and octet stream of the result file with provided filename. # 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_tabular_export(workspace_id, export_id, async_req=True) + >>> thread = api.get_notifications(async_req=True) >>> result = thread.get() - Args: - workspace_id (str): + + 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 get_tabular_export( + self, + workspace_id, + export_id, + **kwargs + ): + """Retrieve exported files # noqa: E501 + + After clients creates a POST export request, the processing of it will start shortly asynchronously. To retrieve the result, client has to check periodically for the result on this endpoint. In case the result isn't ready yet, the service returns 202. If the result is ready, it returns 200 and octet stream of the result file with provided filename. # 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_tabular_export(workspace_id, export_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): export_id (str): Keyword Args: @@ -7473,6 +7831,168 @@ def manage_workspace_permissions( workspace_permission_assignment return self.manage_workspace_permissions_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 metadata_sync( self, workspace_id, @@ -8900,6 +9420,173 @@ def test_data_source_definition( test_definition_request return self.test_data_source_definition_endpoint.call_with_http_info(**kwargs) + def test_existing_notification_channel( + self, + notification_channel_id, + **kwargs + ): + """Test existing notification channel. # noqa: E501 + + Tests the existing notification channel by sending a test notification. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.test_existing_notification_channel(notification_channel_id, async_req=True) + >>> result = thread.get() + + Args: + notification_channel_id (str): + + Keyword Args: + test_destination_request (TestDestinationRequest): [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: + TestResponse + 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_channel_id'] = \ + notification_channel_id + return self.test_existing_notification_channel_endpoint.call_with_http_info(**kwargs) + + def test_notification_channel( + self, + test_destination_request, + **kwargs + ): + """Test notification channel. # noqa: E501 + + Tests the notification channel by sending a test notification. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.test_notification_channel(test_destination_request, async_req=True) + >>> result = thread.get() + + Args: + test_destination_request (TestDestinationRequest): + + 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: + TestResponse + 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['test_destination_request'] = \ + test_destination_request + return self.test_notification_channel_endpoint.call_with_http_info(**kwargs) + def unsubscribe_all_automations( self, **kwargs diff --git a/gooddata-api-client/gooddata_api_client/api/entities_api.py b/gooddata-api-client/gooddata_api_client/api/entities_api.py index a46c47fb1..63deec780 100644 --- a/gooddata-api-client/gooddata_api_client/api/entities_api.py +++ b/gooddata-api-client/gooddata_api_client/api/entities_api.py @@ -2133,8 +2133,8 @@ def __init__(self, api_client=None): }, ('meta_include',): { - "PERMISSIONS": "permissions", "CONFIG": "config", + "PERMISSIONS": "permissions", "HIERARCHY": "hierarchy", "DATAMODELDATASETS": "dataModelDatasets", "ALL": "all", @@ -7341,8 +7341,8 @@ def __init__(self, api_client=None): }, ('meta_include',): { - "PERMISSIONS": "permissions", "CONFIG": "config", + "PERMISSIONS": "permissions", "HIERARCHY": "hierarchy", "DATAMODELDATASETS": "dataModelDatasets", "PAGE": "page", @@ -10453,8 +10453,8 @@ def __init__(self, api_client=None): }, ('meta_include',): { - "PERMISSIONS": "permissions", "CONFIG": "config", + "PERMISSIONS": "permissions", "HIERARCHY": "hierarchy", "DATAMODELDATASETS": "dataModelDatasets", "ALL": "all", 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 ea28bb465..cb88e3fa0 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,8 @@ 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.test_destination_request import TestDestinationRequest +from gooddata_api_client.model.test_response import TestResponse class NotificationChannelsApi(object): @@ -449,6 +451,111 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.test_existing_notification_channel_endpoint = _Endpoint( + settings={ + 'response_type': (TestResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/notificationChannels/{notificationChannelId}/test', + 'operation_id': 'test_existing_notification_channel', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'notification_channel_id', + 'test_destination_request', + ], + 'required': [ + 'notification_channel_id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'notification_channel_id': + (str,), + 'test_destination_request': + (TestDestinationRequest,), + }, + 'attribute_map': { + 'notification_channel_id': 'notificationChannelId', + }, + 'location_map': { + 'notification_channel_id': 'path', + 'test_destination_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) + self.test_notification_channel_endpoint = _Endpoint( + settings={ + 'response_type': (TestResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/notificationChannels/test', + 'operation_id': 'test_notification_channel', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'test_destination_request', + ], + 'required': [ + 'test_destination_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'test_destination_request': + (TestDestinationRequest,), + }, + 'attribute_map': { + }, + 'location_map': { + 'test_destination_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) self.update_entity_notification_channels_endpoint = _Endpoint( settings={ 'response_type': (JsonApiNotificationChannelOutDocument,), @@ -1096,6 +1203,173 @@ def set_notification_channels( declarative_notification_channels return self.set_notification_channels_endpoint.call_with_http_info(**kwargs) + def test_existing_notification_channel( + self, + notification_channel_id, + **kwargs + ): + """Test existing notification channel. # noqa: E501 + + Tests the existing notification channel by sending a test notification. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.test_existing_notification_channel(notification_channel_id, async_req=True) + >>> result = thread.get() + + Args: + notification_channel_id (str): + + Keyword Args: + test_destination_request (TestDestinationRequest): [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: + TestResponse + 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_channel_id'] = \ + notification_channel_id + return self.test_existing_notification_channel_endpoint.call_with_http_info(**kwargs) + + def test_notification_channel( + self, + test_destination_request, + **kwargs + ): + """Test notification channel. # noqa: E501 + + Tests the notification channel by sending a test notification. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.test_notification_channel(test_destination_request, async_req=True) + >>> result = thread.get() + + Args: + test_destination_request (TestDestinationRequest): + + 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: + TestResponse + 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['test_destination_request'] = \ + test_destination_request + return self.test_notification_channel_endpoint.call_with_http_info(**kwargs) + def update_entity_notification_channels( self, id, diff --git a/gooddata-api-client/gooddata_api_client/api/organization_model_controller_api.py b/gooddata-api-client/gooddata_api_client/api/organization_model_controller_api.py index 03fd7d455..85b17f82e 100644 --- a/gooddata-api-client/gooddata_api_client/api/organization_model_controller_api.py +++ b/gooddata-api-client/gooddata_api_client/api/organization_model_controller_api.py @@ -725,8 +725,8 @@ def __init__(self, api_client=None): }, ('meta_include',): { - "PERMISSIONS": "permissions", "CONFIG": "config", + "PERMISSIONS": "permissions", "HIERARCHY": "hierarchy", "DATAMODELDATASETS": "dataModelDatasets", "ALL": "all", @@ -2664,8 +2664,8 @@ def __init__(self, api_client=None): }, ('meta_include',): { - "PERMISSIONS": "permissions", "CONFIG": "config", + "PERMISSIONS": "permissions", "HIERARCHY": "hierarchy", "DATAMODELDATASETS": "dataModelDatasets", "PAGE": "page", @@ -3681,8 +3681,8 @@ def __init__(self, api_client=None): }, ('meta_include',): { - "PERMISSIONS": "permissions", "CONFIG": "config", + "PERMISSIONS": "permissions", "HIERARCHY": "hierarchy", "DATAMODELDATASETS": "dataModelDatasets", "ALL": "all", diff --git a/gooddata-api-client/gooddata_api_client/api/smart_functions_api.py b/gooddata-api-client/gooddata_api_client/api/smart_functions_api.py index 9fa95fea2..882efcbea 100644 --- a/gooddata-api-client/gooddata_api_client/api/smart_functions_api.py +++ b/gooddata-api-client/gooddata_api_client/api/smart_functions_api.py @@ -32,8 +32,6 @@ from gooddata_api_client.model.clustering_result import ClusteringResult from gooddata_api_client.model.forecast_request import ForecastRequest from gooddata_api_client.model.forecast_result import ForecastResult -from gooddata_api_client.model.route_request import RouteRequest -from gooddata_api_client.model.route_result import RouteResult from gooddata_api_client.model.search_request import SearchRequest from gooddata_api_client.model.search_result import SearchResult from gooddata_api_client.model.smart_function_response import SmartFunctionResponse @@ -239,69 +237,6 @@ def __init__(self, api_client=None): }, api_client=api_client ) - self.ai_route_endpoint = _Endpoint( - settings={ - 'response_type': (RouteResult,), - 'auth': [], - 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/ai/route', - 'operation_id': 'ai_route', - 'http_method': 'POST', - 'servers': None, - }, - params_map={ - 'all': [ - 'workspace_id', - 'route_request', - ], - 'required': [ - 'workspace_id', - 'route_request', - ], - 'nullable': [ - ], - 'enum': [ - ], - 'validation': [ - 'workspace_id', - ] - }, - root_map={ - 'validations': { - ('workspace_id',): { - - 'regex': { - 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 - }, - }, - }, - 'allowed_values': { - }, - 'openapi_types': { - 'workspace_id': - (str,), - 'route_request': - (RouteRequest,), - }, - 'attribute_map': { - 'workspace_id': 'workspaceId', - }, - 'location_map': { - 'workspace_id': 'path', - 'route_request': 'body', - }, - 'collection_format_map': { - } - }, - headers_map={ - 'accept': [ - 'application/json' - ], - 'content_type': [ - 'application/json' - ] - }, - api_client=api_client - ) self.ai_search_endpoint = _Endpoint( settings={ 'response_type': (SearchResult,), @@ -1065,93 +1000,6 @@ def ai_chat_stream( chat_request return self.ai_chat_stream_endpoint.call_with_http_info(**kwargs) - def ai_route( - self, - workspace_id, - route_request, - **kwargs - ): - """(BETA) Route to supported use cases based on this input query. # noqa: E501 - - (BETA) Uses similarity (e.g. cosine distance) to find most similar use cases. # noqa: E501 - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - - >>> thread = api.ai_route(workspace_id, route_request, async_req=True) - >>> result = thread.get() - - Args: - workspace_id (str): Workspace identifier - route_request (RouteRequest): - - 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: - RouteResult - 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['route_request'] = \ - route_request - return self.ai_route_endpoint.call_with_http_info(**kwargs) - def ai_search( self, workspace_id, diff --git a/gooddata-api-client/gooddata_api_client/api/tabular_export_api.py b/gooddata-api-client/gooddata_api_client/api/tabular_export_api.py index 847fbae9b..a8ea7f370 100644 --- a/gooddata-api-client/gooddata_api_client/api/tabular_export_api.py +++ b/gooddata-api-client/gooddata_api_client/api/tabular_export_api.py @@ -37,6 +37,61 @@ def __init__(self, api_client=None): if api_client is None: api_client = ApiClient() self.api_client = api_client + self.create_dashboard_export_request_endpoint = _Endpoint( + settings={ + 'response_type': (ExportResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/export/tabular', + 'operation_id': 'create_dashboard_export_request', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'dashboard_id', + ], + 'required': [ + 'workspace_id', + 'dashboard_id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'dashboard_id': + (str,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'dashboard_id': 'dashboardId', + }, + 'location_map': { + 'workspace_id': 'path', + 'dashboard_id': 'path', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [], + }, + api_client=api_client + ) self.create_tabular_export_endpoint = _Endpoint( settings={ 'response_type': (ExportResponse,), @@ -152,6 +207,93 @@ def __init__(self, api_client=None): api_client=api_client ) + def create_dashboard_export_request( + self, + workspace_id, + dashboard_id, + **kwargs + ): + """(EXPERIMENTAL) Create dashboard tabular export request # noqa: E501 + + Note: This API is an experimental and is going to change. Please, use it accordingly.An tabular export job will be created based on the export request and put to queue to be executed. The result of the operation will be an exportResult identifier that will be assembled by the client into a url that can be polled. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.create_dashboard_export_request(workspace_id, dashboard_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + dashboard_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: + ExportResponse + 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['dashboard_id'] = \ + dashboard_id + return self.create_dashboard_export_request_endpoint.call_with_http_info(**kwargs) + def create_tabular_export( self, workspace_id, diff --git a/gooddata-api-client/gooddata_api_client/api/workspaces_entity_apis_api.py b/gooddata-api-client/gooddata_api_client/api/workspaces_entity_apis_api.py index 2cabe4422..e01eea084 100644 --- a/gooddata-api-client/gooddata_api_client/api/workspaces_entity_apis_api.py +++ b/gooddata-api-client/gooddata_api_client/api/workspaces_entity_apis_api.py @@ -82,8 +82,8 @@ def __init__(self, api_client=None): }, ('meta_include',): { - "PERMISSIONS": "permissions", "CONFIG": "config", + "PERMISSIONS": "permissions", "HIERARCHY": "hierarchy", "DATAMODELDATASETS": "dataModelDatasets", "ALL": "all", @@ -225,8 +225,8 @@ def __init__(self, api_client=None): }, ('meta_include',): { - "PERMISSIONS": "permissions", "CONFIG": "config", + "PERMISSIONS": "permissions", "HIERARCHY": "hierarchy", "DATAMODELDATASETS": "dataModelDatasets", "PAGE": "page", @@ -329,8 +329,8 @@ def __init__(self, api_client=None): }, ('meta_include',): { - "PERMISSIONS": "permissions", "CONFIG": "config", + "PERMISSIONS": "permissions", "HIERARCHY": "hierarchy", "DATAMODELDATASETS": "dataModelDatasets", "ALL": "all", diff --git a/gooddata-api-client/gooddata_api_client/model/afm.py b/gooddata-api-client/gooddata_api_client/model/afm.py index 99ced8f4f..c8e7cef99 100644 --- a/gooddata-api-client/gooddata_api_client/model/afm.py +++ b/gooddata-api-client/gooddata_api_client/model/afm.py @@ -122,7 +122,7 @@ def _from_openapi_data(cls, attributes, filters, measures, *args, **kwargs): # Args: attributes ([AttributeItem]): Attributes to be used in the computation. - filters ([FilterDefinition]): Various filter types to filter execution result. + filters ([FilterDefinition]): Various filter types to filter the execution result. measures ([MeasureItem]): Metrics to be computed. Keyword Args: @@ -216,7 +216,7 @@ def __init__(self, attributes, filters, measures, *args, **kwargs): # noqa: E50 Args: attributes ([AttributeItem]): Attributes to be used in the computation. - filters ([FilterDefinition]): Various filter types to filter execution result. + filters ([FilterDefinition]): Various filter types to filter the execution result. measures ([MeasureItem]): Metrics to be computed. Keyword Args: diff --git a/gooddata-api-client/gooddata_api_client/model/alert_description.py b/gooddata-api-client/gooddata_api_client/model/alert_description.py new file mode 100644 index 000000000..473b211c6 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/alert_description.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.alert_evaluation_row import AlertEvaluationRow + globals()['AlertEvaluationRow'] = AlertEvaluationRow + + +class AlertDescription(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 = { + ('status',): { + 'SUCCESS': "SUCCESS", + 'ERROR': "ERROR", + 'INTERNAL_ERROR': "INTERNAL_ERROR", + 'TIMEOUT': "TIMEOUT", + }, + } + + 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 { + 'condition': (str,), # noqa: E501 + 'metric': (str,), # noqa: E501 + 'attribute': (str,), # noqa: E501 + 'current_values': ([AlertEvaluationRow],), # noqa: E501 + 'error_message': (str,), # noqa: E501 + 'filter_count': (int,), # noqa: E501 + 'formatted_threshold': (str,), # noqa: E501 + 'lower_threshold': (float,), # noqa: E501 + 'remaining_alert_evaluation_count': (int,), # noqa: E501 + 'status': (str,), # noqa: E501 + 'threshold': (float,), # noqa: E501 + 'total_value_count': (int,), # noqa: E501 + 'trace_id': (str,), # noqa: E501 + 'triggered_count': (int,), # noqa: E501 + 'upper_threshold': (float,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'condition': 'condition', # noqa: E501 + 'metric': 'metric', # noqa: E501 + 'attribute': 'attribute', # noqa: E501 + 'current_values': 'currentValues', # noqa: E501 + 'error_message': 'errorMessage', # noqa: E501 + 'filter_count': 'filterCount', # noqa: E501 + 'formatted_threshold': 'formattedThreshold', # noqa: E501 + 'lower_threshold': 'lowerThreshold', # noqa: E501 + 'remaining_alert_evaluation_count': 'remainingAlertEvaluationCount', # noqa: E501 + 'status': 'status', # noqa: E501 + 'threshold': 'threshold', # noqa: E501 + 'total_value_count': 'totalValueCount', # noqa: E501 + 'trace_id': 'traceId', # noqa: E501 + 'triggered_count': 'triggeredCount', # noqa: E501 + 'upper_threshold': 'upperThreshold', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, condition, metric, *args, **kwargs): # noqa: E501 + """AlertDescription - a model defined in OpenAPI + + Args: + condition (str): + metric (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + attribute (str): [optional] # noqa: E501 + current_values ([AlertEvaluationRow]): [optional] # noqa: E501 + error_message (str): [optional] # noqa: E501 + filter_count (int): [optional] # noqa: E501 + formatted_threshold (str): [optional] # noqa: E501 + lower_threshold (float): [optional] # noqa: E501 + remaining_alert_evaluation_count (int): [optional] # noqa: E501 + status (str): [optional] # noqa: E501 + threshold (float): [optional] # noqa: E501 + total_value_count (int): [optional] # noqa: E501 + trace_id (str): [optional] # noqa: E501 + triggered_count (int): [optional] # noqa: E501 + upper_threshold (float): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.condition = condition + self.metric = metric + 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, condition, metric, *args, **kwargs): # noqa: E501 + """AlertDescription - a model defined in OpenAPI + + Args: + condition (str): + metric (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + attribute (str): [optional] # noqa: E501 + current_values ([AlertEvaluationRow]): [optional] # noqa: E501 + error_message (str): [optional] # noqa: E501 + filter_count (int): [optional] # noqa: E501 + formatted_threshold (str): [optional] # noqa: E501 + lower_threshold (float): [optional] # noqa: E501 + remaining_alert_evaluation_count (int): [optional] # noqa: E501 + status (str): [optional] # noqa: E501 + threshold (float): [optional] # noqa: E501 + total_value_count (int): [optional] # noqa: E501 + trace_id (str): [optional] # noqa: E501 + triggered_count (int): [optional] # noqa: E501 + upper_threshold (float): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.condition = condition + self.metric = metric + 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/alert_evaluation_row.py b/gooddata-api-client/gooddata_api_client/model/alert_evaluation_row.py new file mode 100644 index 000000000..a2c739084 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/alert_evaluation_row.py @@ -0,0 +1,282 @@ +""" + 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.metric_record import MetricRecord + globals()['MetricRecord'] = MetricRecord + + +class AlertEvaluationRow(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 { + 'computed_metric': (MetricRecord,), # noqa: E501 + 'label_value': (str,), # noqa: E501 + 'primary_metric': (MetricRecord,), # noqa: E501 + 'secondary_metric': (MetricRecord,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'computed_metric': 'computedMetric', # noqa: E501 + 'label_value': 'labelValue', # noqa: E501 + 'primary_metric': 'primaryMetric', # noqa: E501 + 'secondary_metric': 'secondaryMetric', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """AlertEvaluationRow - 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,) + computed_metric (MetricRecord): [optional] # noqa: E501 + label_value (str): [optional] # noqa: E501 + primary_metric (MetricRecord): [optional] # noqa: E501 + secondary_metric (MetricRecord): [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 + """AlertEvaluationRow - 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,) + computed_metric (MetricRecord): [optional] # noqa: E501 + label_value (str): [optional] # noqa: E501 + primary_metric (MetricRecord): [optional] # noqa: E501 + secondary_metric (MetricRecord): [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/attribute_format.py b/gooddata-api-client/gooddata_api_client/model/attribute_format.py index 9f244c9de..6cdcbc713 100644 --- a/gooddata-api-client/gooddata_api_client/model/attribute_format.py +++ b/gooddata-api-client/gooddata_api_client/model/attribute_format.py @@ -107,8 +107,8 @@ def _from_openapi_data(cls, locale, pattern, *args, **kwargs): # noqa: E501 """AttributeFormat - a model defined in OpenAPI Args: - locale (str): Format locale - pattern (str): Format pattern + locale (str): Format locale code like 'en-US', 'cs-CZ', etc. + pattern (str): ICU formatting pattern like 'y', 'dd.MM.y', etc. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -198,8 +198,8 @@ def __init__(self, locale, pattern, *args, **kwargs): # noqa: E501 """AttributeFormat - a model defined in OpenAPI Args: - locale (str): Format locale - pattern (str): Format pattern + locale (str): Format locale code like 'en-US', 'cs-CZ', etc. + pattern (str): ICU formatting pattern like 'y', 'dd.MM.y', etc. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/attribute_header_out.py b/gooddata-api-client/gooddata_api_client/model/attribute_header.py similarity index 95% rename from gooddata-api-client/gooddata_api_client/model/attribute_header_out.py rename to gooddata-api-client/gooddata_api_client/model/attribute_header.py index 2f1c3d3a2..7ae9f438b 100644 --- a/gooddata-api-client/gooddata_api_client/model/attribute_header_out.py +++ b/gooddata-api-client/gooddata_api_client/model/attribute_header.py @@ -31,11 +31,11 @@ def lazy_import(): - from gooddata_api_client.model.attribute_header_out_attribute_header import AttributeHeaderOutAttributeHeader - globals()['AttributeHeaderOutAttributeHeader'] = AttributeHeaderOutAttributeHeader + from gooddata_api_client.model.attribute_header_attribute_header import AttributeHeaderAttributeHeader + globals()['AttributeHeaderAttributeHeader'] = AttributeHeaderAttributeHeader -class AttributeHeaderOut(ModelNormal): +class AttributeHeader(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -88,7 +88,7 @@ def openapi_types(): """ lazy_import() return { - 'attribute_header': (AttributeHeaderOutAttributeHeader,), # noqa: E501 + 'attribute_header': (AttributeHeaderAttributeHeader,), # noqa: E501 } @cached_property @@ -108,10 +108,10 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, attribute_header, *args, **kwargs): # noqa: E501 - """AttributeHeaderOut - a model defined in OpenAPI + """AttributeHeader - a model defined in OpenAPI Args: - attribute_header (AttributeHeaderOutAttributeHeader): + attribute_header (AttributeHeaderAttributeHeader): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -197,10 +197,10 @@ def _from_openapi_data(cls, attribute_header, *args, **kwargs): # noqa: E501 @convert_js_args_to_python_args def __init__(self, attribute_header, *args, **kwargs): # noqa: E501 - """AttributeHeaderOut - a model defined in OpenAPI + """AttributeHeader - a model defined in OpenAPI Args: - attribute_header (AttributeHeaderOutAttributeHeader): + attribute_header (AttributeHeaderAttributeHeader): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/attribute_header_out_attribute_header.py b/gooddata-api-client/gooddata_api_client/model/attribute_header_attribute_header.py similarity index 93% rename from gooddata-api-client/gooddata_api_client/model/attribute_header_out_attribute_header.py rename to gooddata-api-client/gooddata_api_client/model/attribute_header_attribute_header.py index cf1921ab1..a49b2f783 100644 --- a/gooddata-api-client/gooddata_api_client/model/attribute_header_out_attribute_header.py +++ b/gooddata-api-client/gooddata_api_client/model/attribute_header_attribute_header.py @@ -37,7 +37,7 @@ def lazy_import(): globals()['RestApiIdentifier'] = RestApiIdentifier -class AttributeHeaderOutAttributeHeader(ModelNormal): +class AttributeHeaderAttributeHeader(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -156,14 +156,14 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, attribute, attribute_name, label, label_name, local_identifier, primary_label, *args, **kwargs): # noqa: E501 - """AttributeHeaderOutAttributeHeader - a model defined in OpenAPI + """AttributeHeaderAttributeHeader - a model defined in OpenAPI Args: attribute (RestApiIdentifier): - attribute_name (str): + attribute_name (str): Attribute name. label (RestApiIdentifier): - label_name (str): - local_identifier (str): + label_name (str): Label name. + local_identifier (str): Local identifier of the attribute this header relates to. primary_label (RestApiIdentifier): Keyword Args: @@ -198,8 +198,8 @@ def _from_openapi_data(cls, attribute, attribute_name, label, label_name, local_ through its discriminator because we passed in _visited_composed_classes = (Animal,) format (AttributeFormat): [optional] # noqa: E501 - granularity (str): [optional] # noqa: E501 - value_type (str): [optional] # noqa: E501 + granularity (str): Date granularity of the attribute, only filled for date attributes.. [optional] # noqa: E501 + value_type (str): Attribute value type.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -258,14 +258,14 @@ def _from_openapi_data(cls, attribute, attribute_name, label, label_name, local_ @convert_js_args_to_python_args def __init__(self, attribute, attribute_name, label, label_name, local_identifier, primary_label, *args, **kwargs): # noqa: E501 - """AttributeHeaderOutAttributeHeader - a model defined in OpenAPI + """AttributeHeaderAttributeHeader - a model defined in OpenAPI Args: attribute (RestApiIdentifier): - attribute_name (str): + attribute_name (str): Attribute name. label (RestApiIdentifier): - label_name (str): - local_identifier (str): + label_name (str): Label name. + local_identifier (str): Local identifier of the attribute this header relates to. primary_label (RestApiIdentifier): Keyword Args: @@ -300,8 +300,8 @@ def __init__(self, attribute, attribute_name, label, label_name, local_identifie through its discriminator because we passed in _visited_composed_classes = (Animal,) format (AttributeFormat): [optional] # noqa: E501 - granularity (str): [optional] # noqa: E501 - value_type (str): [optional] # noqa: E501 + granularity (str): Date granularity of the attribute, only filled for date attributes.. [optional] # noqa: E501 + value_type (str): Attribute value type.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/attribute_item.py b/gooddata-api-client/gooddata_api_client/model/attribute_item.py index d171ce72f..0f47c104a 100644 --- a/gooddata-api-client/gooddata_api_client/model/attribute_item.py +++ b/gooddata-api-client/gooddata_api_client/model/attribute_item.py @@ -121,7 +121,7 @@ def _from_openapi_data(cls, label, local_identifier, *args, **kwargs): # noqa: Args: label (AfmObjectIdentifierLabel): - local_identifier (str): + local_identifier (str): Local identifier of the attribute. This can be used to reference the attribute in other parts of the execution definition. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -154,7 +154,7 @@ def _from_openapi_data(cls, label, local_identifier, *args, **kwargs): # noqa: Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - show_all_values (bool): Specifies that the label should be outer-joined.. [optional] if omitted the server will use the default value of False # noqa: E501 + show_all_values (bool): Indicates whether to show all values of given attribute even if the data bound to those values is not available.. [optional] if omitted the server will use the default value of False # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -213,7 +213,7 @@ def __init__(self, label, local_identifier, *args, **kwargs): # noqa: E501 Args: label (AfmObjectIdentifierLabel): - local_identifier (str): + local_identifier (str): Local identifier of the attribute. This can be used to reference the attribute in other parts of the execution definition. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -246,7 +246,7 @@ def __init__(self, label, local_identifier, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - show_all_values (bool): Specifies that the label should be outer-joined.. [optional] if omitted the server will use the default value of False # noqa: E501 + show_all_values (bool): Indicates whether to show all values of given attribute even if the data bound to those values is not available.. [optional] if omitted the server will use the default value of False # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/route_request.py b/gooddata-api-client/gooddata_api_client/model/automation_external_recipient.py similarity index 94% rename from gooddata-api-client/gooddata_api_client/model/route_request.py rename to gooddata-api-client/gooddata_api_client/model/automation_external_recipient.py index 7a8ca5687..0a99e64a5 100644 --- a/gooddata-api-client/gooddata_api_client/model/route_request.py +++ b/gooddata-api-client/gooddata_api_client/model/automation_external_recipient.py @@ -31,7 +31,7 @@ -class RouteRequest(ModelNormal): +class AutomationExternalRecipient(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -59,9 +59,6 @@ class RouteRequest(ModelNormal): } validations = { - ('question',): { - 'max_length': 1000, - }, } @cached_property @@ -85,7 +82,7 @@ def openapi_types(): and the value is attribute type. """ return { - 'question': (str,), # noqa: E501 + 'email': (str,), # noqa: E501 } @cached_property @@ -94,7 +91,7 @@ def discriminator(): attribute_map = { - 'question': 'question', # noqa: E501 + 'email': 'email', # noqa: E501 } read_only_vars = { @@ -104,11 +101,11 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, question, *args, **kwargs): # noqa: E501 - """RouteRequest - a model defined in OpenAPI + def _from_openapi_data(cls, email, *args, **kwargs): # noqa: E501 + """AutomationExternalRecipient - a model defined in OpenAPI Args: - question (str): Route to supported use cases based on this input query. + email (str): E-mail address to send notifications from. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -172,7 +169,7 @@ def _from_openapi_data(cls, question, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.question = question + self.email = email for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -193,11 +190,11 @@ def _from_openapi_data(cls, question, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, question, *args, **kwargs): # noqa: E501 - """RouteRequest - a model defined in OpenAPI + def __init__(self, email, *args, **kwargs): # noqa: E501 + """AutomationExternalRecipient - a model defined in OpenAPI Args: - question (str): Route to supported use cases based on this input query. + email (str): E-mail address to send notifications from. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -259,7 +256,7 @@ def __init__(self, question, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.question = question + self.email = email 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/automation_notification.py b/gooddata-api-client/gooddata_api_client/model/automation_notification.py new file mode 100644 index 000000000..461a3f29a --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/automation_notification.py @@ -0,0 +1,339 @@ +""" + 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_notification import AutomationNotification + from gooddata_api_client.model.automation_notification_all_of import AutomationNotificationAllOf + from gooddata_api_client.model.notification_content import NotificationContent + from gooddata_api_client.model.test_notification import TestNotification + from gooddata_api_client.model.webhook_message import WebhookMessage + globals()['AutomationNotification'] = AutomationNotification + globals()['AutomationNotificationAllOf'] = AutomationNotificationAllOf + globals()['NotificationContent'] = NotificationContent + globals()['TestNotification'] = TestNotification + globals()['WebhookMessage'] = WebhookMessage + + +class AutomationNotification(ModelComposed): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'content': (WebhookMessage,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + lazy_import() + val = { + 'AUTOMATION': AutomationNotification, + 'TEST': TestNotification, + } + if not val: + return None + return {'type': val} + + attribute_map = { + 'content': 'content', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """AutomationNotification - a model defined in OpenAPI + + Keyword Args: + content (WebhookMessage): + type (str): + _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', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + '_composed_instances', + '_var_name_to_model_instances', + '_additional_properties_model_instances', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """AutomationNotification - a model defined in OpenAPI + + Keyword Args: + content (WebhookMessage): + type (str): + _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__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") + + @cached_property + def _composed_schemas(): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + lazy_import() + return { + 'anyOf': [ + ], + 'allOf': [ + AutomationNotificationAllOf, + NotificationContent, + ], + 'oneOf': [ + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/automation_notification_all_of.py b/gooddata-api-client/gooddata_api_client/model/automation_notification_all_of.py new file mode 100644 index 000000000..3186eca1a --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/automation_notification_all_of.py @@ -0,0 +1,270 @@ +""" + 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.webhook_message import WebhookMessage + globals()['WebhookMessage'] = WebhookMessage + + +class AutomationNotificationAllOf(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'content': (WebhookMessage,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'content': 'content', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """AutomationNotificationAllOf - 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,) + content (WebhookMessage): [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 + """AutomationNotificationAllOf - 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,) + content (WebhookMessage): [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/comparison_measure_value_filter_comparison_measure_value_filter.py b/gooddata-api-client/gooddata_api_client/model/comparison_measure_value_filter_comparison_measure_value_filter.py index 55c34a0c9..3ae1cbe6c 100644 --- a/gooddata-api-client/gooddata_api_client/model/comparison_measure_value_filter_comparison_measure_value_filter.py +++ b/gooddata-api-client/gooddata_api_client/model/comparison_measure_value_filter_comparison_measure_value_filter.py @@ -100,6 +100,7 @@ def openapi_types(): 'operator': (str,), # noqa: E501 'value': (float,), # noqa: E501 'apply_on_result': (bool,), # noqa: E501 + 'dimensionality': ([AfmIdentifier],), # noqa: E501 'local_identifier': (str,), # noqa: E501 'treat_null_values_as': (float,), # noqa: E501 } @@ -114,6 +115,7 @@ def discriminator(): 'operator': 'operator', # noqa: E501 'value': 'value', # noqa: E501 'apply_on_result': 'applyOnResult', # noqa: E501 + 'dimensionality': 'dimensionality', # noqa: E501 'local_identifier': 'localIdentifier', # noqa: E501 'treat_null_values_as': 'treatNullValuesAs', # noqa: E501 } @@ -165,8 +167,9 @@ def _from_openapi_data(cls, measure, operator, value, *args, **kwargs): # noqa: through its discriminator because we passed in _visited_composed_classes = (Animal,) apply_on_result (bool): [optional] # noqa: E501 + dimensionality ([AfmIdentifier]): References to the attributes to be used when filtering.. [optional] # noqa: E501 local_identifier (str): [optional] # noqa: E501 - treat_null_values_as (float): [optional] # noqa: E501 + treat_null_values_as (float): A value that will be substituted for null values in the metric for the comparisons.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -261,8 +264,9 @@ def __init__(self, measure, operator, value, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) apply_on_result (bool): [optional] # noqa: E501 + dimensionality ([AfmIdentifier]): References to the attributes to be used when filtering.. [optional] # noqa: E501 local_identifier (str): [optional] # noqa: E501 - treat_null_values_as (float): [optional] # noqa: E501 + treat_null_values_as (float): A value that will be substituted for null values in the metric for the comparisons.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/created_visualization.py b/gooddata-api-client/gooddata_api_client/model/created_visualization.py index fd8977ce0..c9b53102c 100644 --- a/gooddata-api-client/gooddata_api_client/model/created_visualization.py +++ b/gooddata-api-client/gooddata_api_client/model/created_visualization.py @@ -34,9 +34,11 @@ def lazy_import(): from gooddata_api_client.model.created_visualization_filters_inner import CreatedVisualizationFiltersInner from gooddata_api_client.model.dim_attribute import DimAttribute from gooddata_api_client.model.metric import Metric + from gooddata_api_client.model.suggestion import Suggestion globals()['CreatedVisualizationFiltersInner'] = CreatedVisualizationFiltersInner globals()['DimAttribute'] = DimAttribute globals()['Metric'] = Metric + globals()['Suggestion'] = Suggestion class CreatedVisualization(ModelNormal): @@ -104,6 +106,7 @@ def openapi_types(): 'filters': ([CreatedVisualizationFiltersInner],), # noqa: E501 'id': (str,), # noqa: E501 'metrics': ([Metric],), # noqa: E501 + 'suggestions': ([Suggestion],), # noqa: E501 'title': (str,), # noqa: E501 'visualization_type': (str,), # noqa: E501 } @@ -118,6 +121,7 @@ def discriminator(): 'filters': 'filters', # noqa: E501 'id': 'id', # noqa: E501 'metrics': 'metrics', # noqa: E501 + 'suggestions': 'suggestions', # noqa: E501 'title': 'title', # noqa: E501 'visualization_type': 'visualizationType', # noqa: E501 } @@ -129,7 +133,7 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, dimensionality, filters, id, metrics, title, visualization_type, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, dimensionality, filters, id, metrics, suggestions, title, visualization_type, *args, **kwargs): # noqa: E501 """CreatedVisualization - a model defined in OpenAPI Args: @@ -137,6 +141,7 @@ def _from_openapi_data(cls, dimensionality, filters, id, metrics, title, visuali filters ([CreatedVisualizationFiltersInner]): List of filters to be applied to the new visualization id (str): Proposed ID of the new visualization metrics ([Metric]): List of metrics to be used in the new visualization + suggestions ([Suggestion]): Suggestions for next steps title (str): Proposed title of the new visualization visualization_type (str): Visualization type requested in question @@ -206,6 +211,7 @@ def _from_openapi_data(cls, dimensionality, filters, id, metrics, title, visuali self.filters = filters self.id = id self.metrics = metrics + self.suggestions = suggestions self.title = title self.visualization_type = visualization_type for var_name, var_value in kwargs.items(): @@ -228,7 +234,7 @@ def _from_openapi_data(cls, dimensionality, filters, id, metrics, title, visuali ]) @convert_js_args_to_python_args - def __init__(self, dimensionality, filters, id, metrics, title, visualization_type, *args, **kwargs): # noqa: E501 + def __init__(self, dimensionality, filters, id, metrics, suggestions, title, visualization_type, *args, **kwargs): # noqa: E501 """CreatedVisualization - a model defined in OpenAPI Args: @@ -236,6 +242,7 @@ def __init__(self, dimensionality, filters, id, metrics, title, visualization_ty filters ([CreatedVisualizationFiltersInner]): List of filters to be applied to the new visualization id (str): Proposed ID of the new visualization metrics ([Metric]): List of metrics to be used in the new visualization + suggestions ([Suggestion]): Suggestions for next steps title (str): Proposed title of the new visualization visualization_type (str): Visualization type requested in question @@ -303,6 +310,7 @@ def __init__(self, dimensionality, filters, id, metrics, title, visualization_ty self.filters = filters self.id = id self.metrics = metrics + self.suggestions = suggestions self.title = title self.visualization_type = visualization_type for var_name, var_value in kwargs.items(): diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_automation.py b/gooddata-api-client/gooddata_api_client/model/declarative_automation.py index 4252cc650..1b9f14787 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_automation.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_automation.py @@ -32,6 +32,7 @@ def lazy_import(): from gooddata_api_client.model.automation_alert import AutomationAlert + from gooddata_api_client.model.automation_external_recipient import AutomationExternalRecipient from gooddata_api_client.model.automation_schedule import AutomationSchedule from gooddata_api_client.model.automation_tabular_export import AutomationTabularExport from gooddata_api_client.model.automation_visual_export import AutomationVisualExport @@ -41,6 +42,7 @@ def lazy_import(): from gooddata_api_client.model.declarative_user_identifier import DeclarativeUserIdentifier from gooddata_api_client.model.json_node import JsonNode globals()['AutomationAlert'] = AutomationAlert + globals()['AutomationExternalRecipient'] = AutomationExternalRecipient globals()['AutomationSchedule'] = AutomationSchedule globals()['AutomationTabularExport'] = AutomationTabularExport globals()['AutomationVisualExport'] = AutomationVisualExport @@ -100,6 +102,8 @@ class DeclarativeAutomation(ModelNormal): }, ('export_definitions',): { }, + ('external_recipients',): { + }, ('modified_at',): { 'regex': { 'pattern': r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}', # noqa: E501 @@ -149,6 +153,7 @@ def openapi_types(): 'description': (str,), # noqa: E501 'details': ({str: (str,)},), # noqa: E501 'export_definitions': ([DeclarativeExportDefinitionIdentifier],), # noqa: E501 + 'external_recipients': ([AutomationExternalRecipient],), # noqa: E501 'metadata': (JsonNode,), # noqa: E501 'modified_at': (str, none_type,), # noqa: E501 'modified_by': (DeclarativeUserIdentifier,), # noqa: E501 @@ -176,6 +181,7 @@ def discriminator(): 'description': 'description', # noqa: E501 'details': 'details', # noqa: E501 'export_definitions': 'exportDefinitions', # noqa: E501 + 'external_recipients': 'externalRecipients', # noqa: E501 'metadata': 'metadata', # noqa: E501 'modified_at': 'modifiedAt', # noqa: E501 'modified_by': 'modifiedBy', # noqa: E501 @@ -240,6 +246,7 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 description (str): [optional] # noqa: E501 details ({str: (str,)}): TODO. [optional] # noqa: E501 export_definitions ([DeclarativeExportDefinitionIdentifier]): [optional] # noqa: E501 + external_recipients ([AutomationExternalRecipient]): External recipients of the automation action results.. [optional] # noqa: E501 metadata (JsonNode): [optional] # noqa: E501 modified_at (str, none_type): Time of the last entity modification.. [optional] # noqa: E501 modified_by (DeclarativeUserIdentifier): [optional] # noqa: E501 @@ -347,6 +354,7 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 description (str): [optional] # noqa: E501 details ({str: (str,)}): TODO. [optional] # noqa: E501 export_definitions ([DeclarativeExportDefinitionIdentifier]): [optional] # noqa: E501 + external_recipients ([AutomationExternalRecipient]): External recipients of the automation action results.. [optional] # noqa: E501 metadata (JsonNode): [optional] # noqa: E501 modified_at (str, none_type): Time of the last entity modification.. [optional] # noqa: E501 modified_by (DeclarativeUserIdentifier): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_export_definition_request_payload.py b/gooddata-api-client/gooddata_api_client/model/declarative_export_definition_request_payload.py index dc2fd780e..f4589500a 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_export_definition_request_payload.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_export_definition_request_payload.py @@ -175,7 +175,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 related_dashboard_id (str): Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard.. [optional] # noqa: E501 settings (Settings): [optional] # noqa: E501 visualization_object (str): Visualization object identifier. Alternative to executionResult property.. [optional] # noqa: E501 - visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only). [optional] # noqa: E501 + visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given.. [optional] # noqa: E501 file_name (str): File name to be used for retrieving the pdf document.. [optional] # noqa: E501 format (str): Expected file format.. [optional] # noqa: E501 dashboard_id (str): Dashboard identifier. [optional] # noqa: E501 @@ -288,7 +288,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 related_dashboard_id (str): Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard.. [optional] # noqa: E501 settings (Settings): [optional] # noqa: E501 visualization_object (str): Visualization object identifier. Alternative to executionResult property.. [optional] # noqa: E501 - visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only). [optional] # noqa: E501 + visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given.. [optional] # noqa: E501 file_name (str): File name to be used for retrieving the pdf document.. [optional] # noqa: E501 format (str): Expected file format.. [optional] # noqa: E501 dashboard_id (str): Dashboard identifier. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_identity_provider.py b/gooddata-api-client/gooddata_api_client/model/declarative_identity_provider.py index aaf620927..577e88eb2 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_identity_provider.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_identity_provider.py @@ -72,9 +72,6 @@ class DeclarativeIdentityProvider(ModelNormal): ('oauth_client_secret',): { 'max_length': 255, }, - ('oauth_issuer_id',): { - 'max_length': 255, - }, ('oauth_issuer_location',): { 'max_length': 255, }, @@ -105,11 +102,10 @@ def openapi_types(): """ return { 'id': (str,), # noqa: E501 - 'custom_claim_mapping': ({str: (str,)},), # noqa: E501 'identifiers': ([str],), # noqa: E501 + 'custom_claim_mapping': ({str: (str,)},), # noqa: E501 'oauth_client_id': (str,), # noqa: E501 'oauth_client_secret': (str,), # noqa: E501 - 'oauth_issuer_id': (str,), # noqa: E501 'oauth_issuer_location': (str,), # noqa: E501 'saml_metadata': (str,), # noqa: E501 } @@ -121,11 +117,10 @@ def discriminator(): attribute_map = { 'id': 'id', # noqa: E501 - 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 'identifiers': 'identifiers', # noqa: E501 + 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 'oauth_client_id': 'oauthClientId', # noqa: E501 'oauth_client_secret': 'oauthClientSecret', # noqa: E501 - 'oauth_issuer_id': 'oauthIssuerId', # noqa: E501 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501 'saml_metadata': 'samlMetadata', # noqa: E501 } @@ -137,11 +132,12 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, id, identifiers, *args, **kwargs): # noqa: E501 """DeclarativeIdentityProvider - a model defined in OpenAPI Args: id (str): FilterView object ID. + identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -175,10 +171,8 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) custom_claim_mapping ({str: (str,)}): Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.. [optional] # noqa: E501 - identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory.. [optional] # noqa: E501 oauth_client_id (str): The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 oauth_client_secret (str): The OAuth client secret of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 oauth_issuer_location (str): The location of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 saml_metadata (str): Base64 encoded xml document with SAML metadata. This document is issued by your SAML provider. It includes the issuer's name, expiration information, and keys that can be used to validate the response from the identity provider. This field is mandatory for SAML IdP.. [optional] # noqa: E501 """ @@ -213,6 +207,7 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 self._visited_composed_classes = _visited_composed_classes + (self.__class__,) self.id = id + self.identifiers = identifiers for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -233,11 +228,12 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, id, *args, **kwargs): # noqa: E501 + def __init__(self, id, identifiers, *args, **kwargs): # noqa: E501 """DeclarativeIdentityProvider - a model defined in OpenAPI Args: id (str): FilterView object ID. + identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -271,10 +267,8 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) custom_claim_mapping ({str: (str,)}): Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.. [optional] # noqa: E501 - identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory.. [optional] # noqa: E501 oauth_client_id (str): The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 oauth_client_secret (str): The OAuth client secret of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 oauth_issuer_location (str): The location of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 saml_metadata (str): Base64 encoded xml document with SAML metadata. This document is issued by your SAML provider. It includes the issuer's name, expiration information, and keys that can be used to validate the response from the identity provider. This field is mandatory for SAML IdP.. [optional] # noqa: E501 """ @@ -307,6 +301,7 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 self._visited_composed_classes = _visited_composed_classes + (self.__class__,) self.id = id + self.identifiers = identifiers for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_notification_channel.py b/gooddata-api-client/gooddata_api_client/model/declarative_notification_channel.py index 602858ded..11e61d002 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_notification_channel.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_notification_channel.py @@ -63,6 +63,12 @@ class DeclarativeNotificationChannel(ModelNormal): ('allowed_recipients',): { 'CREATOR': "CREATOR", 'INTERNAL': "INTERNAL", + 'EXTERNAL': "EXTERNAL", + }, + ('dashboard_link_visibility',): { + 'HIDDEN': "HIDDEN", + 'INTERNAL_ONLY': "INTERNAL_ONLY", + 'ALL': "ALL", }, ('destination_type',): { 'None': None, @@ -117,6 +123,7 @@ def openapi_types(): 'id': (str,), # noqa: E501 'allowed_recipients': (str,), # noqa: E501 'custom_dashboard_url': (str,), # noqa: E501 + 'dashboard_link_visibility': (str,), # noqa: E501 'description': (str,), # noqa: E501 'destination': (DeclarativeNotificationChannelDestination,), # noqa: E501 'destination_type': (str, none_type,), # noqa: E501 @@ -133,6 +140,7 @@ def discriminator(): 'id': 'id', # noqa: E501 'allowed_recipients': 'allowedRecipients', # noqa: E501 'custom_dashboard_url': 'customDashboardUrl', # noqa: E501 + 'dashboard_link_visibility': 'dashboardLinkVisibility', # noqa: E501 'description': 'description', # noqa: E501 'destination': 'destination', # noqa: E501 'destination_type': 'destinationType', # noqa: E501 @@ -185,8 +193,9 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization . [optional] if omitted the server will use the default value of "INTERNAL" # noqa: E501 + allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] if omitted the server will use the default value of "INTERNAL" # noqa: E501 custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] if omitted the server will use the default value of "INTERNAL_ONLY" # noqa: E501 description (str): Description of a notification channel.. [optional] # noqa: E501 destination (DeclarativeNotificationChannelDestination): [optional] # noqa: E501 destination_type (str, none_type): [optional] # noqa: E501 @@ -281,8 +290,9 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization . [optional] if omitted the server will use the default value of "INTERNAL" # noqa: E501 + allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] if omitted the server will use the default value of "INTERNAL" # noqa: E501 custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] if omitted the server will use the default value of "INTERNAL_ONLY" # noqa: E501 description (str): Description of a notification channel.. [optional] # noqa: E501 destination (DeclarativeNotificationChannelDestination): [optional] # noqa: E501 destination_type (str, none_type): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_setting.py b/gooddata-api-client/gooddata_api_client/model/declarative_setting.py index 052d59877..c9d65acc4 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_setting.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_setting.py @@ -77,6 +77,8 @@ class DeclarativeSetting(ModelNormal): 'ENABLE_FILE_ANALYTICS': "ENABLE_FILE_ANALYTICS", 'ALERT': "ALERT", 'SEPARATORS': "SEPARATORS", + 'DATE_FILTER_CONFIG': "DATE_FILTER_CONFIG", + 'JIT_PROVISIONING': "JIT_PROVISIONING", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/execution_links.py b/gooddata-api-client/gooddata_api_client/model/execution_links.py index 06861d461..7eeeed7e1 100644 --- a/gooddata-api-client/gooddata_api_client/model/execution_links.py +++ b/gooddata-api-client/gooddata_api_client/model/execution_links.py @@ -105,7 +105,7 @@ def _from_openapi_data(cls, execution_result, *args, **kwargs): # noqa: E501 """ExecutionLinks - a model defined in OpenAPI Args: - execution_result (str): + execution_result (str): Link to the result data. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -194,7 +194,7 @@ def __init__(self, execution_result, *args, **kwargs): # noqa: E501 """ExecutionLinks - a model defined in OpenAPI Args: - execution_result (str): + execution_result (str): Link to the result data. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/execution_response.py b/gooddata-api-client/gooddata_api_client/model/execution_response.py index 7f621db7b..15bda8582 100644 --- a/gooddata-api-client/gooddata_api_client/model/execution_response.py +++ b/gooddata-api-client/gooddata_api_client/model/execution_response.py @@ -115,7 +115,7 @@ def _from_openapi_data(cls, dimensions, links, *args, **kwargs): # noqa: E501 """ExecutionResponse - a model defined in OpenAPI Args: - dimensions ([ResultDimension]): + dimensions ([ResultDimension]): Dimensions of the result links (ExecutionLinks): Keyword Args: @@ -206,7 +206,7 @@ def __init__(self, dimensions, links, *args, **kwargs): # noqa: E501 """ExecutionResponse - a model defined in OpenAPI Args: - dimensions ([ResultDimension]): + dimensions ([ResultDimension]): Dimensions of the result links (ExecutionLinks): Keyword Args: diff --git a/gooddata-api-client/gooddata_api_client/model/export_request.py b/gooddata-api-client/gooddata_api_client/model/export_request.py index 7d13b4964..f5c7536c3 100644 --- a/gooddata-api-client/gooddata_api_client/model/export_request.py +++ b/gooddata-api-client/gooddata_api_client/model/export_request.py @@ -177,7 +177,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 related_dashboard_id (str): Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard.. [optional] # noqa: E501 settings (Settings): [optional] # noqa: E501 visualization_object (str): Visualization object identifier. Alternative to executionResult property.. [optional] # noqa: E501 - visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only). [optional] # noqa: E501 + visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given.. [optional] # noqa: E501 dashboard_id (str): Dashboard identifier. [optional] # noqa: E501 file_name (str): Filename of downloaded file without extension.. [optional] # noqa: E501 format (str): Expected file format.. [optional] # noqa: E501 @@ -290,7 +290,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 related_dashboard_id (str): Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard.. [optional] # noqa: E501 settings (Settings): [optional] # noqa: E501 visualization_object (str): Visualization object identifier. Alternative to executionResult property.. [optional] # noqa: E501 - visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only). [optional] # noqa: E501 + visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given.. [optional] # noqa: E501 dashboard_id (str): Dashboard identifier. [optional] # noqa: E501 file_name (str): Filename of downloaded file without extension.. [optional] # noqa: E501 format (str): Expected file format.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/export_result.py b/gooddata-api-client/gooddata_api_client/model/export_result.py new file mode 100644 index 000000000..589eff95e --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/export_result.py @@ -0,0 +1,300 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class ExportResult(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 = { + ('status',): { + 'SUCCESS': "SUCCESS", + 'ERROR': "ERROR", + 'INTERNAL_ERROR': "INTERNAL_ERROR", + 'TIMEOUT': "TIMEOUT", + }, + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'export_id': (str,), # noqa: E501 + 'file_name': (str,), # noqa: E501 + 'status': (str,), # noqa: E501 + 'error_message': (str,), # noqa: E501 + 'file_uri': (str,), # noqa: E501 + 'trace_id': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'export_id': 'exportId', # noqa: E501 + 'file_name': 'fileName', # noqa: E501 + 'status': 'status', # noqa: E501 + 'error_message': 'errorMessage', # noqa: E501 + 'file_uri': 'fileUri', # noqa: E501 + 'trace_id': 'traceId', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, export_id, file_name, status, *args, **kwargs): # noqa: E501 + """ExportResult - a model defined in OpenAPI + + Args: + export_id (str): + file_name (str): + status (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + error_message (str): [optional] # noqa: E501 + file_uri (str): [optional] # noqa: E501 + trace_id (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.export_id = export_id + self.file_name = file_name + self.status = status + 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, export_id, file_name, status, *args, **kwargs): # noqa: E501 + """ExportResult - a model defined in OpenAPI + + Args: + export_id (str): + file_name (str): + status (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + error_message (str): [optional] # noqa: E501 + file_uri (str): [optional] # noqa: E501 + trace_id (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + 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.export_id = export_id + self.file_name = file_name + self.status = status + 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/inline_filter_definition_inline.py b/gooddata-api-client/gooddata_api_client/model/inline_filter_definition_inline.py index bbc6ade0f..e33ac3ecd 100644 --- a/gooddata-api-client/gooddata_api_client/model/inline_filter_definition_inline.py +++ b/gooddata-api-client/gooddata_api_client/model/inline_filter_definition_inline.py @@ -109,7 +109,7 @@ def _from_openapi_data(cls, filter, *args, **kwargs): # noqa: E501 """InlineFilterDefinitionInline - a model defined in OpenAPI Args: - filter (str): + filter (str): MAQL query representing the filter. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -200,7 +200,7 @@ def __init__(self, filter, *args, **kwargs): # noqa: E501 """InlineFilterDefinitionInline - a model defined in OpenAPI Args: - filter (str): + filter (str): MAQL query representing the filter. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/inline_measure_definition_inline.py b/gooddata-api-client/gooddata_api_client/model/inline_measure_definition_inline.py index 8c5dbddfd..c7d2afe0b 100644 --- a/gooddata-api-client/gooddata_api_client/model/inline_measure_definition_inline.py +++ b/gooddata-api-client/gooddata_api_client/model/inline_measure_definition_inline.py @@ -105,7 +105,7 @@ def _from_openapi_data(cls, maql, *args, **kwargs): # noqa: E501 """InlineMeasureDefinitionInline - a model defined in OpenAPI Args: - maql (str): + maql (str): MAQL query defining the metric. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -194,7 +194,7 @@ def __init__(self, maql, *args, **kwargs): # noqa: E501 """InlineMeasureDefinitionInline - a model defined in OpenAPI Args: - maql (str): + maql (str): MAQL query defining the metric. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes.py index 1c758edce..17535c3a4 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes.py @@ -32,10 +32,12 @@ def lazy_import(): from gooddata_api_client.model.json_api_automation_in_attributes_alert import JsonApiAutomationInAttributesAlert + from gooddata_api_client.model.json_api_automation_in_attributes_external_recipients_inner import JsonApiAutomationInAttributesExternalRecipientsInner from gooddata_api_client.model.json_api_automation_in_attributes_schedule import JsonApiAutomationInAttributesSchedule from gooddata_api_client.model.json_api_automation_in_attributes_tabular_exports_inner import JsonApiAutomationInAttributesTabularExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_visual_exports_inner import JsonApiAutomationInAttributesVisualExportsInner globals()['JsonApiAutomationInAttributesAlert'] = JsonApiAutomationInAttributesAlert + globals()['JsonApiAutomationInAttributesExternalRecipientsInner'] = JsonApiAutomationInAttributesExternalRecipientsInner globals()['JsonApiAutomationInAttributesSchedule'] = JsonApiAutomationInAttributesSchedule globals()['JsonApiAutomationInAttributesTabularExportsInner'] = JsonApiAutomationInAttributesTabularExportsInner globals()['JsonApiAutomationInAttributesVisualExportsInner'] = JsonApiAutomationInAttributesVisualExportsInner @@ -113,6 +115,7 @@ def openapi_types(): 'are_relations_valid': (bool,), # noqa: E501 'description': (str,), # noqa: E501 'details': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 + 'external_recipients': ([JsonApiAutomationInAttributesExternalRecipientsInner],), # noqa: E501 'metadata': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}, none_type,), # noqa: E501 'schedule': (JsonApiAutomationInAttributesSchedule,), # noqa: E501 'state': (str,), # noqa: E501 @@ -132,6 +135,7 @@ def discriminator(): 'are_relations_valid': 'areRelationsValid', # noqa: E501 'description': 'description', # noqa: E501 'details': 'details', # noqa: E501 + 'external_recipients': 'externalRecipients', # noqa: E501 'metadata': 'metadata', # noqa: E501 'schedule': 'schedule', # noqa: E501 'state': 'state', # noqa: E501 @@ -186,6 +190,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 are_relations_valid (bool): [optional] # noqa: E501 description (str): [optional] # noqa: E501 details (bool, date, datetime, dict, float, int, list, str, none_type): Additional details to be included in the automated message.. [optional] # noqa: E501 + external_recipients ([JsonApiAutomationInAttributesExternalRecipientsInner]): External recipients of the automation action results.. [optional] # noqa: E501 metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}, none_type): Additional information for the automation.. [optional] # noqa: E501 schedule (JsonApiAutomationInAttributesSchedule): [optional] # noqa: E501 state (str): Current state of the automation.. [optional] # noqa: E501 @@ -282,6 +287,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 are_relations_valid (bool): [optional] # noqa: E501 description (str): [optional] # noqa: E501 details (bool, date, datetime, dict, float, int, list, str, none_type): Additional details to be included in the automated message.. [optional] # noqa: E501 + external_recipients ([JsonApiAutomationInAttributesExternalRecipientsInner]): External recipients of the automation action results.. [optional] # noqa: E501 metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}, none_type): Additional information for the automation.. [optional] # noqa: E501 schedule (JsonApiAutomationInAttributesSchedule): [optional] # noqa: E501 state (str): Current state of the automation.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_external_recipients_inner.py b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_external_recipients_inner.py new file mode 100644 index 000000000..fa4530ad2 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_external_recipients_inner.py @@ -0,0 +1,270 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class JsonApiAutomationInAttributesExternalRecipientsInner(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 + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'email': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'email': 'email', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, email, *args, **kwargs): # noqa: E501 + """JsonApiAutomationInAttributesExternalRecipientsInner - a model defined in OpenAPI + + Args: + email (str): E-mail address to send notifications from. + + 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.email = email + 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, email, *args, **kwargs): # noqa: E501 + """JsonApiAutomationInAttributesExternalRecipientsInner - a model defined in OpenAPI + + Args: + email (str): E-mail address to send notifications from. + + 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.email = email + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_automation_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_automation_out_attributes.py index dfa1e0556..1c5724f58 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_automation_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_automation_out_attributes.py @@ -32,10 +32,12 @@ def lazy_import(): from gooddata_api_client.model.json_api_automation_in_attributes_alert import JsonApiAutomationInAttributesAlert + from gooddata_api_client.model.json_api_automation_in_attributes_external_recipients_inner import JsonApiAutomationInAttributesExternalRecipientsInner from gooddata_api_client.model.json_api_automation_in_attributes_schedule import JsonApiAutomationInAttributesSchedule from gooddata_api_client.model.json_api_automation_in_attributes_tabular_exports_inner import JsonApiAutomationInAttributesTabularExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_visual_exports_inner import JsonApiAutomationInAttributesVisualExportsInner globals()['JsonApiAutomationInAttributesAlert'] = JsonApiAutomationInAttributesAlert + globals()['JsonApiAutomationInAttributesExternalRecipientsInner'] = JsonApiAutomationInAttributesExternalRecipientsInner globals()['JsonApiAutomationInAttributesSchedule'] = JsonApiAutomationInAttributesSchedule globals()['JsonApiAutomationInAttributesTabularExportsInner'] = JsonApiAutomationInAttributesTabularExportsInner globals()['JsonApiAutomationInAttributesVisualExportsInner'] = JsonApiAutomationInAttributesVisualExportsInner @@ -114,6 +116,7 @@ def openapi_types(): 'created_at': (datetime,), # noqa: E501 'description': (str,), # noqa: E501 'details': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 + 'external_recipients': ([JsonApiAutomationInAttributesExternalRecipientsInner],), # noqa: E501 'metadata': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}, none_type,), # noqa: E501 'modified_at': (datetime,), # noqa: E501 'schedule': (JsonApiAutomationInAttributesSchedule,), # noqa: E501 @@ -135,6 +138,7 @@ def discriminator(): 'created_at': 'createdAt', # noqa: E501 'description': 'description', # noqa: E501 'details': 'details', # noqa: E501 + 'external_recipients': 'externalRecipients', # noqa: E501 'metadata': 'metadata', # noqa: E501 'modified_at': 'modifiedAt', # noqa: E501 'schedule': 'schedule', # noqa: E501 @@ -191,6 +195,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 created_at (datetime): [optional] # noqa: E501 description (str): [optional] # noqa: E501 details (bool, date, datetime, dict, float, int, list, str, none_type): Additional details to be included in the automated message.. [optional] # noqa: E501 + external_recipients ([JsonApiAutomationInAttributesExternalRecipientsInner]): External recipients of the automation action results.. [optional] # noqa: E501 metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}, none_type): Additional information for the automation.. [optional] # noqa: E501 modified_at (datetime): [optional] # noqa: E501 schedule (JsonApiAutomationInAttributesSchedule): [optional] # noqa: E501 @@ -289,6 +294,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 created_at (datetime): [optional] # noqa: E501 description (str): [optional] # noqa: E501 details (bool, date, datetime, dict, float, int, list, str, none_type): Additional details to be included in the automated message.. [optional] # noqa: E501 + external_recipients ([JsonApiAutomationInAttributesExternalRecipientsInner]): External recipients of the automation action results.. [optional] # noqa: E501 metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}, none_type): Additional information for the automation.. [optional] # noqa: E501 modified_at (datetime): [optional] # noqa: E501 schedule (JsonApiAutomationInAttributesSchedule): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_export_definition_in_attributes_request_payload.py b/gooddata-api-client/gooddata_api_client/model/json_api_export_definition_in_attributes_request_payload.py index e586b0ca6..14c34268d 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_export_definition_in_attributes_request_payload.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_export_definition_in_attributes_request_payload.py @@ -177,7 +177,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 related_dashboard_id (str): Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard.. [optional] # noqa: E501 settings (Settings): [optional] # noqa: E501 visualization_object (str): Visualization object identifier. Alternative to executionResult property.. [optional] # noqa: E501 - visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only). [optional] # noqa: E501 + visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given.. [optional] # noqa: E501 dashboard_id (str): Dashboard identifier. [optional] # noqa: E501 file_name (str): Filename of downloaded file without extension.. [optional] # noqa: E501 format (str): Expected file format.. [optional] # noqa: E501 @@ -290,7 +290,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 related_dashboard_id (str): Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard.. [optional] # noqa: E501 settings (Settings): [optional] # noqa: E501 visualization_object (str): Visualization object identifier. Alternative to executionResult property.. [optional] # noqa: E501 - visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only). [optional] # noqa: E501 + visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given.. [optional] # noqa: E501 dashboard_id (str): Dashboard identifier. [optional] # noqa: E501 file_name (str): Filename of downloaded file without extension.. [optional] # noqa: E501 format (str): Expected file format.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_in.py index 150730d8e..e3c366fb9 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_in.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_in.py @@ -96,9 +96,9 @@ def openapi_types(): """ lazy_import() return { + 'attributes': (JsonApiIdentityProviderInAttributes,), # noqa: E501 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 - 'attributes': (JsonApiIdentityProviderInAttributes,), # noqa: E501 } @cached_property @@ -107,9 +107,9 @@ def discriminator(): attribute_map = { + 'attributes': 'attributes', # noqa: E501 'id': 'id', # noqa: E501 'type': 'type', # noqa: E501 - 'attributes': 'attributes', # noqa: E501 } read_only_vars = { @@ -119,10 +119,11 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderIn - a model defined in OpenAPI Args: + attributes (JsonApiIdentityProviderInAttributes): id (str): API identifier of an object Keyword Args: @@ -157,7 +158,6 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attributes (JsonApiIdentityProviderInAttributes): [optional] # noqa: E501 """ type = kwargs.get('type', "identityProvider") @@ -190,6 +190,7 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.attributes = attributes self.id = id self.type = type for var_name, var_value in kwargs.items(): @@ -212,10 +213,11 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, id, *args, **kwargs): # noqa: E501 + def __init__(self, attributes, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderIn - a model defined in OpenAPI Args: + attributes (JsonApiIdentityProviderInAttributes): id (str): API identifier of an object Keyword Args: @@ -250,7 +252,6 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attributes (JsonApiIdentityProviderInAttributes): [optional] # noqa: E501 """ type = kwargs.get('type', "identityProvider") @@ -281,6 +282,7 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.attributes = attributes self.id = id self.type = type for var_name, var_value in kwargs.items(): diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_in_attributes.py index 52bae5ba8..86812d45c 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_in_attributes.py @@ -67,9 +67,6 @@ class JsonApiIdentityProviderInAttributes(ModelNormal): ('oauth_client_secret',): { 'max_length': 255, }, - ('oauth_issuer_id',): { - 'max_length': 255, - }, ('oauth_issuer_location',): { 'max_length': 255, }, @@ -99,11 +96,10 @@ def openapi_types(): and the value is attribute type. """ return { - 'custom_claim_mapping': ({str: (str,)},), # noqa: E501 'identifiers': ([str],), # noqa: E501 + 'custom_claim_mapping': ({str: (str,)},), # noqa: E501 'oauth_client_id': (str,), # noqa: E501 'oauth_client_secret': (str,), # noqa: E501 - 'oauth_issuer_id': (str,), # noqa: E501 'oauth_issuer_location': (str,), # noqa: E501 'saml_metadata': (str,), # noqa: E501 } @@ -114,11 +110,10 @@ def discriminator(): attribute_map = { - 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 'identifiers': 'identifiers', # noqa: E501 + 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 'oauth_client_id': 'oauthClientId', # noqa: E501 'oauth_client_secret': 'oauthClientSecret', # noqa: E501 - 'oauth_issuer_id': 'oauthIssuerId', # noqa: E501 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501 'saml_metadata': 'samlMetadata', # noqa: E501 } @@ -130,9 +125,12 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, identifiers, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderInAttributes - a model defined in OpenAPI + Args: + identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. + Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -165,10 +163,8 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) custom_claim_mapping ({str: (str,)}): Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.. [optional] # noqa: E501 - identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory.. [optional] # noqa: E501 oauth_client_id (str): The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 oauth_client_secret (str): The OAuth client secret of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 oauth_issuer_location (str): The location of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 saml_metadata (str): Base64 encoded xml document with SAML metadata. This document is issued by your SAML provider. It includes the issuer's name, expiration information, and keys that can be used to validate the response from the identity provider. This field is mandatory for SAML IdP.. [optional] # noqa: E501 """ @@ -202,6 +198,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.identifiers = identifiers for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -222,9 +219,12 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, *args, **kwargs): # noqa: E501 + def __init__(self, identifiers, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderInAttributes - a model defined in OpenAPI + Args: + identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. + Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -257,10 +257,8 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) custom_claim_mapping ({str: (str,)}): Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.. [optional] # noqa: E501 - identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory.. [optional] # noqa: E501 oauth_client_id (str): The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 oauth_client_secret (str): The OAuth client secret of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 oauth_issuer_location (str): The location of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 saml_metadata (str): Base64 encoded xml document with SAML metadata. This document is issued by your SAML provider. It includes the issuer's name, expiration information, and keys that can be used to validate the response from the identity provider. This field is mandatory for SAML IdP.. [optional] # noqa: E501 """ @@ -292,6 +290,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.identifiers = identifiers for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out.py index d5ad16172..e6d6e8751 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out.py @@ -96,9 +96,9 @@ def openapi_types(): """ lazy_import() return { + 'attributes': (JsonApiIdentityProviderOutAttributes,), # noqa: E501 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 - 'attributes': (JsonApiIdentityProviderOutAttributes,), # noqa: E501 } @cached_property @@ -107,9 +107,9 @@ def discriminator(): attribute_map = { + 'attributes': 'attributes', # noqa: E501 'id': 'id', # noqa: E501 'type': 'type', # noqa: E501 - 'attributes': 'attributes', # noqa: E501 } read_only_vars = { @@ -119,10 +119,11 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderOut - a model defined in OpenAPI Args: + attributes (JsonApiIdentityProviderOutAttributes): id (str): API identifier of an object Keyword Args: @@ -157,7 +158,6 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attributes (JsonApiIdentityProviderOutAttributes): [optional] # noqa: E501 """ type = kwargs.get('type', "identityProvider") @@ -190,6 +190,7 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.attributes = attributes self.id = id self.type = type for var_name, var_value in kwargs.items(): @@ -212,10 +213,11 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, id, *args, **kwargs): # noqa: E501 + def __init__(self, attributes, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderOut - a model defined in OpenAPI Args: + attributes (JsonApiIdentityProviderOutAttributes): id (str): API identifier of an object Keyword Args: @@ -250,7 +252,6 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attributes (JsonApiIdentityProviderOutAttributes): [optional] # noqa: E501 """ type = kwargs.get('type', "identityProvider") @@ -281,6 +282,7 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.attributes = attributes self.id = id self.type = type for var_name, var_value in kwargs.items(): diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_attributes.py index 23a4f571f..341f5a2f1 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_attributes.py @@ -64,9 +64,6 @@ class JsonApiIdentityProviderOutAttributes(ModelNormal): ('oauth_client_id',): { 'max_length': 255, }, - ('oauth_issuer_id',): { - 'max_length': 255, - }, ('oauth_issuer_location',): { 'max_length': 255, }, @@ -93,10 +90,9 @@ def openapi_types(): and the value is attribute type. """ return { - 'custom_claim_mapping': ({str: (str,)},), # noqa: E501 'identifiers': ([str],), # noqa: E501 + 'custom_claim_mapping': ({str: (str,)},), # noqa: E501 'oauth_client_id': (str,), # noqa: E501 - 'oauth_issuer_id': (str,), # noqa: E501 'oauth_issuer_location': (str,), # noqa: E501 } @@ -106,10 +102,9 @@ def discriminator(): attribute_map = { - 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 'identifiers': 'identifiers', # noqa: E501 + 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 'oauth_client_id': 'oauthClientId', # noqa: E501 - 'oauth_issuer_id': 'oauthIssuerId', # noqa: E501 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501 } @@ -120,9 +115,12 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, identifiers, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderOutAttributes - a model defined in OpenAPI + Args: + identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. + Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -155,9 +153,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) custom_claim_mapping ({str: (str,)}): Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.. [optional] # noqa: E501 - identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory.. [optional] # noqa: E501 oauth_client_id (str): The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 oauth_issuer_location (str): The location of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 """ @@ -190,6 +186,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.identifiers = identifiers for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -210,9 +207,12 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, *args, **kwargs): # noqa: E501 + def __init__(self, identifiers, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderOutAttributes - a model defined in OpenAPI + Args: + identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory. + Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -245,9 +245,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) custom_claim_mapping ({str: (str,)}): Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.. [optional] # noqa: E501 - identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory.. [optional] # noqa: E501 oauth_client_id (str): The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 oauth_issuer_location (str): The location of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 """ @@ -278,6 +276,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.identifiers = identifiers for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_with_links.py index c0e5f5039..da107caf9 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_with_links.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_with_links.py @@ -102,9 +102,9 @@ def openapi_types(): """ lazy_import() return { + 'attributes': (JsonApiIdentityProviderOutAttributes,), # noqa: E501 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 - 'attributes': (JsonApiIdentityProviderOutAttributes,), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 } @@ -114,9 +114,9 @@ def discriminator(): attribute_map = { + 'attributes': 'attributes', # noqa: E501 'id': 'id', # noqa: E501 'type': 'type', # noqa: E501 - 'attributes': 'attributes', # noqa: E501 'links': 'links', # noqa: E501 } @@ -129,6 +129,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderOutWithLinks - a model defined in OpenAPI Keyword Args: + attributes (JsonApiIdentityProviderOutAttributes): id (str): API identifier of an object type (str): Object type. defaults to "identityProvider", must be one of ["identityProvider", ] # noqa: E501 _check_type (bool): if True, values for parameters in openapi_types @@ -161,7 +162,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,) - attributes (JsonApiIdentityProviderOutAttributes): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ @@ -237,6 +237,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderOutWithLinks - a model defined in OpenAPI Keyword Args: + attributes (JsonApiIdentityProviderOutAttributes): id (str): API identifier of an object type (str): Object type. defaults to "identityProvider", must be one of ["identityProvider", ] # noqa: E501 _check_type (bool): if True, values for parameters in openapi_types @@ -269,7 +270,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,) - attributes (JsonApiIdentityProviderOutAttributes): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch.py index 46844937b..14e1593da 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch.py @@ -31,8 +31,8 @@ def lazy_import(): - from gooddata_api_client.model.json_api_identity_provider_in_attributes import JsonApiIdentityProviderInAttributes - globals()['JsonApiIdentityProviderInAttributes'] = JsonApiIdentityProviderInAttributes + from gooddata_api_client.model.json_api_identity_provider_patch_attributes import JsonApiIdentityProviderPatchAttributes + globals()['JsonApiIdentityProviderPatchAttributes'] = JsonApiIdentityProviderPatchAttributes class JsonApiIdentityProviderPatch(ModelNormal): @@ -96,9 +96,9 @@ def openapi_types(): """ lazy_import() return { + 'attributes': (JsonApiIdentityProviderPatchAttributes,), # noqa: E501 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 - 'attributes': (JsonApiIdentityProviderInAttributes,), # noqa: E501 } @cached_property @@ -107,9 +107,9 @@ def discriminator(): attribute_map = { + 'attributes': 'attributes', # noqa: E501 'id': 'id', # noqa: E501 'type': 'type', # noqa: E501 - 'attributes': 'attributes', # noqa: E501 } read_only_vars = { @@ -119,10 +119,11 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderPatch - a model defined in OpenAPI Args: + attributes (JsonApiIdentityProviderPatchAttributes): id (str): API identifier of an object Keyword Args: @@ -157,7 +158,6 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attributes (JsonApiIdentityProviderInAttributes): [optional] # noqa: E501 """ type = kwargs.get('type', "identityProvider") @@ -190,6 +190,7 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.attributes = attributes self.id = id self.type = type for var_name, var_value in kwargs.items(): @@ -212,10 +213,11 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, id, *args, **kwargs): # noqa: E501 + def __init__(self, attributes, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderPatch - a model defined in OpenAPI Args: + attributes (JsonApiIdentityProviderPatchAttributes): id (str): API identifier of an object Keyword Args: @@ -250,7 +252,6 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attributes (JsonApiIdentityProviderInAttributes): [optional] # noqa: E501 """ type = kwargs.get('type', "identityProvider") @@ -281,6 +282,7 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.attributes = attributes self.id = id self.type = type for var_name, var_value in kwargs.items(): diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch_attributes.py new file mode 100644 index 000000000..a1353c52b --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch_attributes.py @@ -0,0 +1,298 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class JsonApiIdentityProviderPatchAttributes(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 = { + ('custom_claim_mapping',): { + }, + ('oauth_client_id',): { + 'max_length': 255, + }, + ('oauth_client_secret',): { + 'max_length': 255, + }, + ('oauth_issuer_location',): { + 'max_length': 255, + }, + ('saml_metadata',): { + 'max_length': 15000, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'custom_claim_mapping': ({str: (str,)},), # noqa: E501 + 'identifiers': ([str],), # noqa: E501 + 'oauth_client_id': (str,), # noqa: E501 + 'oauth_client_secret': (str,), # noqa: E501 + 'oauth_issuer_location': (str,), # noqa: E501 + 'saml_metadata': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 + 'identifiers': 'identifiers', # noqa: E501 + 'oauth_client_id': 'oauthClientId', # noqa: E501 + 'oauth_client_secret': 'oauthClientSecret', # noqa: E501 + 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501 + 'saml_metadata': 'samlMetadata', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """JsonApiIdentityProviderPatchAttributes - 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,) + custom_claim_mapping ({str: (str,)}): Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.. [optional] # noqa: E501 + identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory.. [optional] # noqa: E501 + oauth_client_id (str): The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 + oauth_client_secret (str): The OAuth client secret of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 + oauth_issuer_location (str): The location of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 + saml_metadata (str): Base64 encoded xml document with SAML metadata. This document is issued by your SAML provider. It includes the issuer's name, expiration information, and keys that can be used to validate the response from the identity provider. This field is mandatory for SAML IdP.. [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 + """JsonApiIdentityProviderPatchAttributes - 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,) + custom_claim_mapping ({str: (str,)}): Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.. [optional] # noqa: E501 + identifiers ([str]): List of identifiers for this IdP, where an identifier is a domain name. Users with email addresses belonging to these domains will be authenticated by this IdP. In multiple provider setup, this field is mandatory.. [optional] # noqa: E501 + oauth_client_id (str): The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 + oauth_client_secret (str): The OAuth client secret of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 + oauth_issuer_location (str): The location of your OIDC provider. This field is mandatory for OIDC IdP.. [optional] # noqa: E501 + saml_metadata (str): Base64 encoded xml document with SAML metadata. This document is issued by your SAML provider. It includes the issuer's name, expiration information, and keys that can be used to validate the response from the identity provider. This field is mandatory for SAML IdP.. [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_in_attributes.py index 5fefa62c8..da478912f 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_in_attributes.py @@ -103,13 +103,14 @@ def openapi_types(): and the value is attribute type. """ return { - 'provider': (str,), # noqa: E501 'title': (str,), # noqa: E501 'token': (str,), # noqa: E501 'base_url': (str, none_type,), # noqa: E501 'description': (str, none_type,), # noqa: E501 - 'llm_model': (str, none_type,), # noqa: E501 + 'llm_model': (str,), # noqa: E501 'llm_organization': (str, none_type,), # noqa: E501 + 'provider': (str,), # noqa: E501 + 'workspace_ids': ([str],), # noqa: E501 } @cached_property @@ -118,13 +119,14 @@ def discriminator(): attribute_map = { - 'provider': 'provider', # noqa: E501 'title': 'title', # noqa: E501 'token': 'token', # noqa: E501 'base_url': 'baseUrl', # noqa: E501 'description': 'description', # noqa: E501 'llm_model': 'llmModel', # noqa: E501 'llm_organization': 'llmOrganization', # noqa: E501 + 'provider': 'provider', # noqa: E501 + 'workspace_ids': 'workspaceIds', # noqa: E501 } read_only_vars = { @@ -142,7 +144,6 @@ def _from_openapi_data(cls, title, token, *args, **kwargs): # noqa: E501 token (str): The token to use to connect to the LLM provider. Keyword Args: - provider (str): LLM Provider.. defaults to "OPENAI", must be one of ["OPENAI", ] # noqa: E501 _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be raised if the wrong type is input. @@ -175,11 +176,12 @@ def _from_openapi_data(cls, title, token, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 - llm_model (str, none_type): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 + llm_model (str): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 llm_organization (str, none_type): Organization in LLM provider.. [optional] # noqa: E501 + provider (str): LLM Provider.. [optional] if omitted the server will use the default value of "OPENAI" # noqa: E501 + workspace_ids ([str]): List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.. [optional] # noqa: E501 """ - provider = kwargs.get('provider', "OPENAI") _check_type = kwargs.pop('_check_type', True) _spec_property_naming = kwargs.pop('_spec_property_naming', True) _path_to_item = kwargs.pop('_path_to_item', ()) @@ -209,7 +211,6 @@ def _from_openapi_data(cls, title, token, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.provider = provider self.title = title self.token = token for var_name, var_value in kwargs.items(): @@ -240,7 +241,6 @@ def __init__(self, title, token, *args, **kwargs): # noqa: E501 token (str): The token to use to connect to the LLM provider. Keyword Args: - provider (str): LLM Provider.. defaults to "OPENAI", must be one of ["OPENAI", ] # noqa: E501 _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be raised if the wrong type is input. @@ -273,11 +273,12 @@ def __init__(self, title, token, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 - llm_model (str, none_type): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 + llm_model (str): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 llm_organization (str, none_type): Organization in LLM provider.. [optional] # noqa: E501 + provider (str): LLM Provider.. [optional] if omitted the server will use the default value of "OPENAI" # noqa: E501 + workspace_ids ([str]): List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.. [optional] # noqa: E501 """ - provider = kwargs.get('provider', "OPENAI") _check_type = kwargs.pop('_check_type', True) _spec_property_naming = kwargs.pop('_spec_property_naming', False) _path_to_item = kwargs.pop('_path_to_item', ()) @@ -305,7 +306,6 @@ def __init__(self, title, token, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.provider = provider self.title = title self.token = token for var_name, var_value in kwargs.items(): diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_out_attributes.py index 433132dda..d49cc8122 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_out_attributes.py @@ -100,12 +100,13 @@ def openapi_types(): and the value is attribute type. """ return { - 'provider': (str,), # noqa: E501 'title': (str,), # noqa: E501 'base_url': (str, none_type,), # noqa: E501 'description': (str, none_type,), # noqa: E501 - 'llm_model': (str, none_type,), # noqa: E501 + 'llm_model': (str,), # noqa: E501 'llm_organization': (str, none_type,), # noqa: E501 + 'provider': (str,), # noqa: E501 + 'workspace_ids': ([str],), # noqa: E501 } @cached_property @@ -114,12 +115,13 @@ def discriminator(): attribute_map = { - 'provider': 'provider', # noqa: E501 'title': 'title', # noqa: E501 'base_url': 'baseUrl', # noqa: E501 'description': 'description', # noqa: E501 'llm_model': 'llmModel', # noqa: E501 'llm_organization': 'llmOrganization', # noqa: E501 + 'provider': 'provider', # noqa: E501 + 'workspace_ids': 'workspaceIds', # noqa: E501 } read_only_vars = { @@ -136,7 +138,6 @@ def _from_openapi_data(cls, title, *args, **kwargs): # noqa: E501 title (str): User-facing title of the LLM Provider. Keyword Args: - provider (str): LLM Provider.. defaults to "OPENAI", must be one of ["OPENAI", ] # noqa: E501 _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be raised if the wrong type is input. @@ -169,11 +170,12 @@ def _from_openapi_data(cls, title, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 - llm_model (str, none_type): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 + llm_model (str): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 llm_organization (str, none_type): Organization in LLM provider.. [optional] # noqa: E501 + provider (str): LLM Provider.. [optional] if omitted the server will use the default value of "OPENAI" # noqa: E501 + workspace_ids ([str]): List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.. [optional] # noqa: E501 """ - provider = kwargs.get('provider', "OPENAI") _check_type = kwargs.pop('_check_type', True) _spec_property_naming = kwargs.pop('_spec_property_naming', True) _path_to_item = kwargs.pop('_path_to_item', ()) @@ -203,7 +205,6 @@ def _from_openapi_data(cls, title, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.provider = provider self.title = title for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ @@ -232,7 +233,6 @@ def __init__(self, title, *args, **kwargs): # noqa: E501 title (str): User-facing title of the LLM Provider. Keyword Args: - provider (str): LLM Provider.. defaults to "OPENAI", must be one of ["OPENAI", ] # noqa: E501 _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be raised if the wrong type is input. @@ -265,11 +265,12 @@ def __init__(self, title, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 - llm_model (str, none_type): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 + llm_model (str): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 llm_organization (str, none_type): Organization in LLM provider.. [optional] # noqa: E501 + provider (str): LLM Provider.. [optional] if omitted the server will use the default value of "OPENAI" # noqa: E501 + workspace_ids ([str]): List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.. [optional] # noqa: E501 """ - provider = kwargs.get('provider', "OPENAI") _check_type = kwargs.pop('_check_type', True) _spec_property_naming = kwargs.pop('_spec_property_naming', False) _path_to_item = kwargs.pop('_path_to_item', ()) @@ -297,7 +298,6 @@ def __init__(self, title, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.provider = provider self.title = title for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_patch_attributes.py index 4c753886d..f7d8af56e 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_patch_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_patch_attributes.py @@ -105,11 +105,12 @@ def openapi_types(): return { 'base_url': (str, none_type,), # noqa: E501 'description': (str, none_type,), # noqa: E501 - 'llm_model': (str, none_type,), # noqa: E501 + 'llm_model': (str,), # noqa: E501 'llm_organization': (str, none_type,), # noqa: E501 'provider': (str,), # noqa: E501 'title': (str,), # noqa: E501 'token': (str,), # noqa: E501 + 'workspace_ids': ([str],), # noqa: E501 } @cached_property @@ -125,6 +126,7 @@ def discriminator(): 'provider': 'provider', # noqa: E501 'title': 'title', # noqa: E501 'token': 'token', # noqa: E501 + 'workspace_ids': 'workspaceIds', # noqa: E501 } read_only_vars = { @@ -170,11 +172,12 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 - llm_model (str, none_type): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 + llm_model (str): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 llm_organization (str, none_type): Organization in LLM provider.. [optional] # noqa: E501 provider (str): LLM Provider.. [optional] if omitted the server will use the default value of "OPENAI" # noqa: E501 title (str): User-facing title of the LLM Provider.. [optional] # noqa: E501 token (str): The token to use to connect to the LLM provider.. [optional] # noqa: E501 + workspace_ids ([str]): List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -262,11 +265,12 @@ def __init__(self, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 - llm_model (str, none_type): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 + llm_model (str): LLM Model. We provide a default model for each provider, but you can override it here.. [optional] # noqa: E501 llm_organization (str, none_type): Organization in LLM provider.. [optional] # noqa: E501 provider (str): LLM Provider.. [optional] if omitted the server will use the default value of "OPENAI" # noqa: E501 title (str): User-facing title of the LLM Provider.. [optional] # noqa: E501 token (str): The token to use to connect to the LLM provider.. [optional] # noqa: E501 + workspace_ids ([str]): List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_in_attributes.py index 7eaa03346..e6e643f31 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_in_attributes.py @@ -63,13 +63,12 @@ class JsonApiNotificationChannelInAttributes(ModelNormal): ('allowed_recipients',): { 'CREATOR': "CREATOR", 'INTERNAL': "INTERNAL", + 'EXTERNAL': "EXTERNAL", }, - ('destination_type',): { - 'None': None, - 'WEBHOOK': "WEBHOOK", - 'SMTP': "SMTP", - 'DEFAULT_SMTP': "DEFAULT_SMTP", - 'IN_PLATFORM': "IN_PLATFORM", + ('dashboard_link_visibility',): { + 'HIDDEN': "HIDDEN", + 'INTERNAL_ONLY': "INTERNAL_ONLY", + 'ALL': "ALL", }, ('in_platform_notification',): { 'DISABLED': "DISABLED", @@ -111,9 +110,9 @@ def openapi_types(): return { 'allowed_recipients': (str,), # noqa: E501 'custom_dashboard_url': (str,), # noqa: E501 + 'dashboard_link_visibility': (str,), # noqa: E501 'description': (str, none_type,), # noqa: E501 'destination': (JsonApiNotificationChannelInAttributesDestination,), # noqa: E501 - 'destination_type': (str, none_type,), # noqa: E501 'in_platform_notification': (str,), # noqa: E501 'name': (str, none_type,), # noqa: E501 } @@ -126,9 +125,9 @@ def discriminator(): attribute_map = { 'allowed_recipients': 'allowedRecipients', # noqa: E501 'custom_dashboard_url': 'customDashboardUrl', # noqa: E501 + 'dashboard_link_visibility': 'dashboardLinkVisibility', # noqa: E501 'description': 'description', # noqa: E501 'destination': 'destination', # noqa: E501 - 'destination_type': 'destinationType', # noqa: E501 'in_platform_notification': 'inPlatformNotification', # noqa: E501 'name': 'name', # noqa: E501 } @@ -174,11 +173,11 @@ 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,) - allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization . [optional] # noqa: E501 + allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] # noqa: E501 custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] # noqa: E501 description (str, none_type): [optional] # noqa: E501 destination (JsonApiNotificationChannelInAttributesDestination): [optional] # noqa: E501 - destination_type (str, none_type): [optional] # noqa: E501 in_platform_notification (str): In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications . [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 """ @@ -266,11 +265,11 @@ 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,) - allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization . [optional] # noqa: E501 + allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] # noqa: E501 custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] # noqa: E501 description (str, none_type): [optional] # noqa: E501 destination (JsonApiNotificationChannelInAttributesDestination): [optional] # noqa: E501 - destination_type (str, none_type): [optional] # noqa: E501 in_platform_notification (str): In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications . [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out.py index 03f47e1ad..5eb57fd0b 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out.py @@ -31,8 +31,8 @@ def lazy_import(): - from gooddata_api_client.model.json_api_notification_channel_in_attributes import JsonApiNotificationChannelInAttributes - globals()['JsonApiNotificationChannelInAttributes'] = JsonApiNotificationChannelInAttributes + from gooddata_api_client.model.json_api_notification_channel_out_attributes import JsonApiNotificationChannelOutAttributes + globals()['JsonApiNotificationChannelOutAttributes'] = JsonApiNotificationChannelOutAttributes class JsonApiNotificationChannelOut(ModelNormal): @@ -98,7 +98,7 @@ def openapi_types(): return { 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 - 'attributes': (JsonApiNotificationChannelInAttributes,), # noqa: E501 + 'attributes': (JsonApiNotificationChannelOutAttributes,), # noqa: E501 } @cached_property @@ -157,7 +157,7 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attributes (JsonApiNotificationChannelInAttributes): [optional] # noqa: E501 + attributes (JsonApiNotificationChannelOutAttributes): [optional] # noqa: E501 """ type = kwargs.get('type', "notificationChannel") @@ -250,7 +250,7 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attributes (JsonApiNotificationChannelInAttributes): [optional] # noqa: E501 + attributes (JsonApiNotificationChannelOutAttributes): [optional] # noqa: E501 """ type = kwargs.get('type', "notificationChannel") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_attributes.py new file mode 100644 index 000000000..244a77a0f --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_attributes.py @@ -0,0 +1,325 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_notification_channel_in_attributes_destination import JsonApiNotificationChannelInAttributesDestination + globals()['JsonApiNotificationChannelInAttributesDestination'] = JsonApiNotificationChannelInAttributesDestination + + +class JsonApiNotificationChannelOutAttributes(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 = { + ('allowed_recipients',): { + 'CREATOR': "CREATOR", + 'INTERNAL': "INTERNAL", + 'EXTERNAL': "EXTERNAL", + }, + ('dashboard_link_visibility',): { + 'HIDDEN': "HIDDEN", + 'INTERNAL_ONLY': "INTERNAL_ONLY", + 'ALL': "ALL", + }, + ('destination_type',): { + 'None': None, + 'WEBHOOK': "WEBHOOK", + 'SMTP': "SMTP", + 'DEFAULT_SMTP': "DEFAULT_SMTP", + 'IN_PLATFORM': "IN_PLATFORM", + }, + ('in_platform_notification',): { + 'DISABLED': "DISABLED", + 'ENABLED': "ENABLED", + }, + } + + validations = { + ('description',): { + 'max_length': 10000, + }, + ('name',): { + 'max_length': 255, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'allowed_recipients': (str,), # noqa: E501 + 'custom_dashboard_url': (str,), # noqa: E501 + 'dashboard_link_visibility': (str,), # noqa: E501 + 'description': (str, none_type,), # noqa: E501 + 'destination': (JsonApiNotificationChannelInAttributesDestination,), # noqa: E501 + 'destination_type': (str, none_type,), # noqa: E501 + 'in_platform_notification': (str,), # noqa: E501 + 'name': (str, none_type,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'allowed_recipients': 'allowedRecipients', # noqa: E501 + 'custom_dashboard_url': 'customDashboardUrl', # noqa: E501 + 'dashboard_link_visibility': 'dashboardLinkVisibility', # noqa: E501 + 'description': 'description', # noqa: E501 + 'destination': 'destination', # noqa: E501 + 'destination_type': 'destinationType', # noqa: E501 + 'in_platform_notification': 'inPlatformNotification', # noqa: E501 + 'name': 'name', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """JsonApiNotificationChannelOutAttributes - 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,) + allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] # noqa: E501 + custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] # noqa: E501 + description (str, none_type): [optional] # noqa: E501 + destination (JsonApiNotificationChannelInAttributesDestination): [optional] # noqa: E501 + destination_type (str, none_type): [optional] # noqa: E501 + in_platform_notification (str): In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications . [optional] # noqa: E501 + name (str, none_type): [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 + """JsonApiNotificationChannelOutAttributes - 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,) + allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] # noqa: E501 + custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] # noqa: E501 + description (str, none_type): [optional] # noqa: E501 + destination (JsonApiNotificationChannelInAttributesDestination): [optional] # noqa: E501 + destination_type (str, none_type): [optional] # noqa: E501 + in_platform_notification (str): In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications . [optional] # noqa: E501 + name (str, none_type): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_with_links.py index 8ce0ccb09..d453211ed 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_with_links.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_with_links.py @@ -31,12 +31,12 @@ def lazy_import(): - from gooddata_api_client.model.json_api_notification_channel_in_attributes import JsonApiNotificationChannelInAttributes from gooddata_api_client.model.json_api_notification_channel_out import JsonApiNotificationChannelOut + from gooddata_api_client.model.json_api_notification_channel_out_attributes import JsonApiNotificationChannelOutAttributes from gooddata_api_client.model.object_links import ObjectLinks from gooddata_api_client.model.object_links_container import ObjectLinksContainer - globals()['JsonApiNotificationChannelInAttributes'] = JsonApiNotificationChannelInAttributes globals()['JsonApiNotificationChannelOut'] = JsonApiNotificationChannelOut + globals()['JsonApiNotificationChannelOutAttributes'] = JsonApiNotificationChannelOutAttributes globals()['ObjectLinks'] = ObjectLinks globals()['ObjectLinksContainer'] = ObjectLinksContainer @@ -104,7 +104,7 @@ def openapi_types(): return { 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 - 'attributes': (JsonApiNotificationChannelInAttributes,), # noqa: E501 + 'attributes': (JsonApiNotificationChannelOutAttributes,), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 } @@ -161,7 +161,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,) - attributes (JsonApiNotificationChannelInAttributes): [optional] # noqa: E501 + attributes (JsonApiNotificationChannelOutAttributes): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ @@ -269,7 +269,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,) - attributes (JsonApiNotificationChannelInAttributes): [optional] # noqa: E501 + attributes (JsonApiNotificationChannelOutAttributes): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py index 3b52be8d1..4ce2d6f8a 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py @@ -73,6 +73,8 @@ class JsonApiOrganizationSettingInAttributes(ModelNormal): 'ENABLE_FILE_ANALYTICS': "ENABLE_FILE_ANALYTICS", 'ALERT': "ALERT", 'SEPARATORS': "SEPARATORS", + 'DATE_FILTER_CONFIG': "DATE_FILTER_CONFIG", + 'JIT_PROVISIONING': "JIT_PROVISIONING", }, } 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 079c111de..9f7f1e4b2 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 @@ -31,8 +31,8 @@ def lazy_import(): - from gooddata_api_client.model.measure_header_out import MeasureHeaderOut - globals()['MeasureHeaderOut'] = MeasureHeaderOut + from gooddata_api_client.model.measure_header import MeasureHeader + globals()['MeasureHeader'] = MeasureHeader class MeasureGroupHeaders(ModelNormal): @@ -88,7 +88,9 @@ def openapi_types(): """ lazy_import() return { - 'measure_group_headers': ([MeasureHeaderOut],), # noqa: E501 + 'first': (MeasureHeader,), # noqa: E501 + 'last': (MeasureHeader,), # noqa: E501 + 'measure_group_headers': ([MeasureHeader],), # noqa: E501 } @cached_property @@ -97,6 +99,8 @@ def discriminator(): attribute_map = { + 'first': 'first', # noqa: E501 + 'last': 'last', # noqa: E501 'measure_group_headers': 'measureGroupHeaders', # noqa: E501 } @@ -141,7 +145,9 @@ 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,) - measure_group_headers ([MeasureHeaderOut]): [optional] # noqa: E501 + first (MeasureHeader): [optional] # noqa: E501 + last (MeasureHeader): [optional] # noqa: E501 + measure_group_headers ([MeasureHeader]): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -227,7 +233,9 @@ def __init__(self, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - measure_group_headers ([MeasureHeaderOut]): [optional] # noqa: E501 + first (MeasureHeader): [optional] # noqa: E501 + last (MeasureHeader): [optional] # noqa: E501 + measure_group_headers ([MeasureHeader]): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/measure_header_out.py b/gooddata-api-client/gooddata_api_client/model/measure_header.py similarity index 94% rename from gooddata-api-client/gooddata_api_client/model/measure_header_out.py rename to gooddata-api-client/gooddata_api_client/model/measure_header.py index d0e9e3df0..11d216cbd 100644 --- a/gooddata-api-client/gooddata_api_client/model/measure_header_out.py +++ b/gooddata-api-client/gooddata_api_client/model/measure_header.py @@ -31,7 +31,7 @@ -class MeasureHeaderOut(ModelNormal): +class MeasureHeader(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -106,10 +106,10 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, local_identifier, *args, **kwargs): # noqa: E501 - """MeasureHeaderOut - a model defined in OpenAPI + """MeasureHeader - a model defined in OpenAPI Args: - local_identifier (str): + local_identifier (str): Local identifier of the measure this header relates to. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -142,8 +142,8 @@ def _from_openapi_data(cls, local_identifier, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - format (str): [optional] # noqa: E501 - name (str): [optional] # noqa: E501 + format (str): Format to be used to format the measure data.. [optional] # noqa: E501 + name (str): Name of the measure.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -197,10 +197,10 @@ def _from_openapi_data(cls, local_identifier, *args, **kwargs): # noqa: E501 @convert_js_args_to_python_args def __init__(self, local_identifier, *args, **kwargs): # noqa: E501 - """MeasureHeaderOut - a model defined in OpenAPI + """MeasureHeader - a model defined in OpenAPI Args: - local_identifier (str): + local_identifier (str): Local identifier of the measure this header relates to. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -233,8 +233,8 @@ def __init__(self, local_identifier, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - format (str): [optional] # noqa: E501 - name (str): [optional] # noqa: E501 + format (str): Format to be used to format the measure data.. [optional] # noqa: E501 + name (str): Name of the measure.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/measure_item.py b/gooddata-api-client/gooddata_api_client/model/measure_item.py index 0ca6ff86a..c1ff1f149 100644 --- a/gooddata-api-client/gooddata_api_client/model/measure_item.py +++ b/gooddata-api-client/gooddata_api_client/model/measure_item.py @@ -119,7 +119,7 @@ def _from_openapi_data(cls, definition, local_identifier, *args, **kwargs): # n Args: definition (MeasureDefinition): - local_identifier (str): + local_identifier (str): Local identifier of the metric. This can be used to reference the metric in other parts of the execution definition. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -210,7 +210,7 @@ def __init__(self, definition, local_identifier, *args, **kwargs): # noqa: E501 Args: definition (MeasureDefinition): - local_identifier (str): + local_identifier (str): Local identifier of the metric. This can be used to reference the metric in other parts of the execution definition. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/metric_record.py b/gooddata-api-client/gooddata_api_client/model/metric_record.py new file mode 100644 index 000000000..dd65219f9 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/metric_record.py @@ -0,0 +1,274 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class MetricRecord(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 + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'value': (float,), # noqa: E501 + 'formatted_value': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'value': 'value', # noqa: E501 + 'formatted_value': 'formattedValue', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, value, *args, **kwargs): # noqa: E501 + """MetricRecord - a model defined in OpenAPI + + Args: + value (float): + + 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,) + formatted_value (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.value = value + 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, value, *args, **kwargs): # noqa: E501 + """MetricRecord - a model defined in OpenAPI + + Args: + value (float): + + 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,) + formatted_value (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.value = value + 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/notification.py b/gooddata-api-client/gooddata_api_client/model/notification.py new file mode 100644 index 000000000..305144c6a --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/notification.py @@ -0,0 +1,302 @@ +""" + 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.notification_data import NotificationData + globals()['NotificationData'] = NotificationData + + +class Notification(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 { + 'created_at': (datetime,), # noqa: E501 + 'data': (NotificationData,), # noqa: E501 + 'id': (str,), # noqa: E501 + 'is_read': (bool,), # noqa: E501 + 'automation_id': (str,), # noqa: E501 + 'workspace_id': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'created_at': 'createdAt', # noqa: E501 + 'data': 'data', # noqa: E501 + 'id': 'id', # noqa: E501 + 'is_read': 'isRead', # noqa: E501 + 'automation_id': 'automationId', # noqa: E501 + 'workspace_id': 'workspaceId', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, created_at, data, id, is_read, *args, **kwargs): # noqa: E501 + """Notification - a model defined in OpenAPI + + Args: + created_at (datetime): + data (NotificationData): + id (str): + is_read (bool): + + 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,) + automation_id (str): [optional] # noqa: E501 + workspace_id (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.created_at = created_at + self.data = data + self.id = id + self.is_read = is_read + 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, created_at, data, id, is_read, *args, **kwargs): # noqa: E501 + """Notification - a model defined in OpenAPI + + Args: + created_at (datetime): + data (NotificationData): + id (str): + is_read (bool): + + 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,) + automation_id (str): [optional] # noqa: E501 + workspace_id (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + 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.created_at = created_at + self.data = data + self.id = id + self.is_read = is_read + 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/notification_content.py b/gooddata-api-client/gooddata_api_client/model/notification_content.py new file mode 100644 index 000000000..acf1a390d --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/notification_content.py @@ -0,0 +1,286 @@ +""" + 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_notification import AutomationNotification + from gooddata_api_client.model.test_notification import TestNotification + globals()['AutomationNotification'] = AutomationNotification + globals()['TestNotification'] = TestNotification + + +class NotificationContent(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 { + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + lazy_import() + val = { + 'AUTOMATION': AutomationNotification, + 'AutomationNotification': AutomationNotification, + 'TEST': TestNotification, + 'TestNotification': TestNotification, + } + if not val: + return None + return {'type': val} + + attribute_map = { + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, type, *args, **kwargs): # noqa: E501 + """NotificationContent - a model defined in OpenAPI + + Args: + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _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.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, type, *args, **kwargs): # noqa: E501 + """NotificationContent - a model defined in OpenAPI + + Args: + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _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.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/notification_data.py b/gooddata-api-client/gooddata_api_client/model/notification_data.py new file mode 100644 index 000000000..1cfb66b77 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/notification_data.py @@ -0,0 +1,341 @@ +""" + 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_notification import AutomationNotification + from gooddata_api_client.model.test_notification import TestNotification + from gooddata_api_client.model.webhook_message import WebhookMessage + globals()['AutomationNotification'] = AutomationNotification + globals()['TestNotification'] = TestNotification + globals()['WebhookMessage'] = WebhookMessage + + +class NotificationData(ModelComposed): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + 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 { + 'type': (str,), # noqa: E501 + 'message': (str,), # noqa: E501 + 'content': (WebhookMessage,), # noqa: E501 + } + + @cached_property + def discriminator(): + lazy_import() + val = { + 'AUTOMATION': AutomationNotification, + 'AutomationNotification': AutomationNotification, + 'TEST': TestNotification, + 'TestNotification': TestNotification, + } + if not val: + return None + return {'type': val} + + attribute_map = { + 'type': 'type', # noqa: E501 + 'message': 'message', # noqa: E501 + 'content': 'content', # noqa: E501 + } + + read_only_vars = { + } + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """NotificationData - a model defined in OpenAPI + + Keyword Args: + type (str): + _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,) + message (str): [optional] # noqa: E501 + content (WebhookMessage): [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', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + '_composed_instances', + '_var_name_to_model_instances', + '_additional_properties_model_instances', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """NotificationData - a model defined in OpenAPI + + Keyword Args: + type (str): + _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,) + message (str): [optional] # noqa: E501 + content (WebhookMessage): [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__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") + + @cached_property + def _composed_schemas(): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + lazy_import() + return { + 'anyOf': [ + ], + 'allOf': [ + ], + 'oneOf': [ + AutomationNotification, + TestNotification, + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/notifications.py b/gooddata-api-client/gooddata_api_client/model/notifications.py new file mode 100644 index 000000000..d17e12fad --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/notifications.py @@ -0,0 +1,284 @@ +""" + 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.notification import Notification + from gooddata_api_client.model.notifications_meta import NotificationsMeta + globals()['Notification'] = Notification + globals()['NotificationsMeta'] = NotificationsMeta + + +class Notifications(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'data': ([Notification],), # noqa: E501 + 'meta': (NotificationsMeta,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + 'meta': 'meta', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, meta, *args, **kwargs): # noqa: E501 + """Notifications - a model defined in OpenAPI + + Args: + data ([Notification]): + meta (NotificationsMeta): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + self.meta = meta + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, data, meta, *args, **kwargs): # noqa: E501 + """Notifications - a model defined in OpenAPI + + Args: + data ([Notification]): + meta (NotificationsMeta): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + self.meta = meta + 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/notifications_meta.py b/gooddata-api-client/gooddata_api_client/model/notifications_meta.py new file mode 100644 index 000000000..dcab676a8 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/notifications_meta.py @@ -0,0 +1,270 @@ +""" + 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.notifications_meta_total import NotificationsMetaTotal + globals()['NotificationsMetaTotal'] = NotificationsMetaTotal + + +class NotificationsMeta(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 { + 'total': (NotificationsMetaTotal,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'total': 'total', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """NotificationsMeta - 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,) + total (NotificationsMetaTotal): [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 + """NotificationsMeta - 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,) + total (NotificationsMetaTotal): [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/notifications_meta_total.py b/gooddata-api-client/gooddata_api_client/model/notifications_meta_total.py new file mode 100644 index 000000000..5c1b26219 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/notifications_meta_total.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 + + + +class NotificationsMetaTotal(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 + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'all': (int,), # noqa: E501 + 'unread': (int,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'all': 'all', # noqa: E501 + 'unread': 'unread', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, all, unread, *args, **kwargs): # noqa: E501 + """NotificationsMetaTotal - a model defined in OpenAPI + + Args: + all (int): + unread (int): + + 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.all = all + self.unread = unread + 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, all, unread, *args, **kwargs): # noqa: E501 + """NotificationsMetaTotal - a model defined in OpenAPI + + Args: + all (int): + unread (int): + + 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.all = all + self.unread = unread + 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/pop_dataset.py b/gooddata-api-client/gooddata_api_client/model/pop_dataset.py index af8006a3c..173411247 100644 --- a/gooddata-api-client/gooddata_api_client/model/pop_dataset.py +++ b/gooddata-api-client/gooddata_api_client/model/pop_dataset.py @@ -114,7 +114,7 @@ def _from_openapi_data(cls, dataset, periods_ago, *args, **kwargs): # noqa: E50 Args: dataset (AfmObjectIdentifierDataset): - periods_ago (int): + periods_ago (int): Number of periods ago to calculate the previous period for. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -205,7 +205,7 @@ def __init__(self, dataset, periods_ago, *args, **kwargs): # noqa: E501 Args: dataset (AfmObjectIdentifierDataset): - periods_ago (int): + periods_ago (int): Number of periods ago to calculate the previous period for. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/pop_dataset_measure_definition_previous_period_measure.py b/gooddata-api-client/gooddata_api_client/model/pop_dataset_measure_definition_previous_period_measure.py index 5f21d7b6c..de46e94d2 100644 --- a/gooddata-api-client/gooddata_api_client/model/pop_dataset_measure_definition_previous_period_measure.py +++ b/gooddata-api-client/gooddata_api_client/model/pop_dataset_measure_definition_previous_period_measure.py @@ -115,7 +115,7 @@ def _from_openapi_data(cls, date_datasets, measure_identifier, *args, **kwargs): """PopDatasetMeasureDefinitionPreviousPeriodMeasure - a model defined in OpenAPI Args: - date_datasets ([PopDataset]): + date_datasets ([PopDataset]): Specification of which date data sets to use for determining the period to calculate the previous period for. measure_identifier (AfmLocalIdentifier): Keyword Args: @@ -206,7 +206,7 @@ def __init__(self, date_datasets, measure_identifier, *args, **kwargs): # noqa: """PopDatasetMeasureDefinitionPreviousPeriodMeasure - a model defined in OpenAPI Args: - date_datasets ([PopDataset]): + date_datasets ([PopDataset]): Specification of which date data sets to use for determining the period to calculate the previous period for. measure_identifier (AfmLocalIdentifier): Keyword Args: diff --git a/gooddata-api-client/gooddata_api_client/model/pop_date.py b/gooddata-api-client/gooddata_api_client/model/pop_date.py index 05396c4df..e7b8a7a5f 100644 --- a/gooddata-api-client/gooddata_api_client/model/pop_date.py +++ b/gooddata-api-client/gooddata_api_client/model/pop_date.py @@ -114,7 +114,7 @@ def _from_openapi_data(cls, attribute, periods_ago, *args, **kwargs): # noqa: E Args: attribute (AfmObjectIdentifierAttribute): - periods_ago (int): + periods_ago (int): Number of periods ago to calculate the previous period for. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -205,7 +205,7 @@ def __init__(self, attribute, periods_ago, *args, **kwargs): # noqa: E501 Args: attribute (AfmObjectIdentifierAttribute): - periods_ago (int): + periods_ago (int): Number of periods ago to calculate the previous period for. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/pop_date_measure_definition_over_period_measure.py b/gooddata-api-client/gooddata_api_client/model/pop_date_measure_definition_over_period_measure.py index 9ca812f6c..dbc7ff11f 100644 --- a/gooddata-api-client/gooddata_api_client/model/pop_date_measure_definition_over_period_measure.py +++ b/gooddata-api-client/gooddata_api_client/model/pop_date_measure_definition_over_period_measure.py @@ -115,7 +115,7 @@ def _from_openapi_data(cls, date_attributes, measure_identifier, *args, **kwargs """PopDateMeasureDefinitionOverPeriodMeasure - a model defined in OpenAPI Args: - date_attributes ([PopDate]): + date_attributes ([PopDate]): Attributes to use for determining the period to calculate the PoP for. measure_identifier (AfmLocalIdentifier): Keyword Args: @@ -206,7 +206,7 @@ def __init__(self, date_attributes, measure_identifier, *args, **kwargs): # noq """PopDateMeasureDefinitionOverPeriodMeasure - a model defined in OpenAPI Args: - date_attributes ([PopDate]): + date_attributes ([PopDate]): Attributes to use for determining the period to calculate the PoP for. measure_identifier (AfmLocalIdentifier): Keyword Args: diff --git a/gooddata-api-client/gooddata_api_client/model/range_measure_value_filter_range_measure_value_filter.py b/gooddata-api-client/gooddata_api_client/model/range_measure_value_filter_range_measure_value_filter.py index 5bf175582..5e6bf5d7c 100644 --- a/gooddata-api-client/gooddata_api_client/model/range_measure_value_filter_range_measure_value_filter.py +++ b/gooddata-api-client/gooddata_api_client/model/range_measure_value_filter_range_measure_value_filter.py @@ -97,6 +97,7 @@ def openapi_types(): 'operator': (str,), # noqa: E501 'to': (float,), # noqa: E501 'apply_on_result': (bool,), # noqa: E501 + 'dimensionality': ([AfmIdentifier],), # noqa: E501 'local_identifier': (str,), # noqa: E501 'treat_null_values_as': (float,), # noqa: E501 } @@ -112,6 +113,7 @@ def discriminator(): 'operator': 'operator', # noqa: E501 'to': 'to', # noqa: E501 'apply_on_result': 'applyOnResult', # noqa: E501 + 'dimensionality': 'dimensionality', # noqa: E501 'local_identifier': 'localIdentifier', # noqa: E501 'treat_null_values_as': 'treatNullValuesAs', # noqa: E501 } @@ -164,8 +166,9 @@ def _from_openapi_data(cls, _from, measure, operator, to, *args, **kwargs): # n through its discriminator because we passed in _visited_composed_classes = (Animal,) apply_on_result (bool): [optional] # noqa: E501 + dimensionality ([AfmIdentifier]): References to the attributes to be used when filtering.. [optional] # noqa: E501 local_identifier (str): [optional] # noqa: E501 - treat_null_values_as (float): [optional] # noqa: E501 + treat_null_values_as (float): A value that will be substituted for null values in the metric for the comparisons.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -262,8 +265,9 @@ def __init__(self, _from, measure, operator, to, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) apply_on_result (bool): [optional] # noqa: E501 + dimensionality ([AfmIdentifier]): References to the attributes to be used when filtering.. [optional] # noqa: E501 local_identifier (str): [optional] # noqa: E501 - treat_null_values_as (float): [optional] # noqa: E501 + treat_null_values_as (float): A value that will be substituted for null values in the metric for the comparisons.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/ranking_filter_ranking_filter.py b/gooddata-api-client/gooddata_api_client/model/ranking_filter_ranking_filter.py index e1c031e87..03dcfa6d8 100644 --- a/gooddata-api-client/gooddata_api_client/model/ranking_filter_ranking_filter.py +++ b/gooddata-api-client/gooddata_api_client/model/ranking_filter_ranking_filter.py @@ -96,6 +96,7 @@ def openapi_types(): 'operator': (str,), # noqa: E501 'value': (int,), # noqa: E501 'apply_on_result': (bool,), # noqa: E501 + 'dimensionality': ([AfmIdentifier],), # noqa: E501 'local_identifier': (str,), # noqa: E501 } @@ -109,6 +110,7 @@ def discriminator(): 'operator': 'operator', # noqa: E501 'value': 'value', # noqa: E501 'apply_on_result': 'applyOnResult', # noqa: E501 + 'dimensionality': 'dimensionality', # noqa: E501 'local_identifier': 'localIdentifier', # noqa: E501 } @@ -123,9 +125,9 @@ def _from_openapi_data(cls, measures, operator, value, *args, **kwargs): # noqa """RankingFilterRankingFilter - a model defined in OpenAPI Args: - measures ([AfmIdentifier]): - operator (str): - value (int): + measures ([AfmIdentifier]): References to the metrics to be used when filtering. + operator (str): The type of ranking to use, TOP or BOTTOM. + value (int): Number of top/bottom values to filter. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -159,6 +161,7 @@ def _from_openapi_data(cls, measures, operator, value, *args, **kwargs): # noqa through its discriminator because we passed in _visited_composed_classes = (Animal,) apply_on_result (bool): [optional] # noqa: E501 + dimensionality ([AfmIdentifier]): References to the attributes to be used when filtering.. [optional] # noqa: E501 local_identifier (str): [optional] # noqa: E501 """ @@ -218,9 +221,9 @@ def __init__(self, measures, operator, value, *args, **kwargs): # noqa: E501 """RankingFilterRankingFilter - a model defined in OpenAPI Args: - measures ([AfmIdentifier]): - operator (str): - value (int): + measures ([AfmIdentifier]): References to the metrics to be used when filtering. + operator (str): The type of ranking to use, TOP or BOTTOM. + value (int): Number of top/bottom values to filter. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -254,6 +257,7 @@ def __init__(self, measures, operator, value, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) apply_on_result (bool): [optional] # noqa: E501 + dimensionality ([AfmIdentifier]): References to the attributes to be used when filtering.. [optional] # noqa: E501 local_identifier (str): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/resolved_setting.py b/gooddata-api-client/gooddata_api_client/model/resolved_setting.py index a2e4af6a5..aafeda364 100644 --- a/gooddata-api-client/gooddata_api_client/model/resolved_setting.py +++ b/gooddata-api-client/gooddata_api_client/model/resolved_setting.py @@ -77,6 +77,8 @@ class ResolvedSetting(ModelNormal): 'ENABLE_FILE_ANALYTICS': "ENABLE_FILE_ANALYTICS", 'ALERT': "ALERT", 'SEPARATORS': "SEPARATORS", + 'DATE_FILTER_CONFIG': "DATE_FILTER_CONFIG", + 'JIT_PROVISIONING': "JIT_PROVISIONING", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/result_dimension.py b/gooddata-api-client/gooddata_api_client/model/result_dimension.py index 9fdeed379..f1478ef92 100644 --- a/gooddata-api-client/gooddata_api_client/model/result_dimension.py +++ b/gooddata-api-client/gooddata_api_client/model/result_dimension.py @@ -114,7 +114,7 @@ def _from_openapi_data(cls, headers, local_identifier, *args, **kwargs): # noqa Args: headers ([ResultDimensionHeader]): - local_identifier (str): + local_identifier (str): Local identifier of the dimension. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -205,7 +205,7 @@ def __init__(self, headers, local_identifier, *args, **kwargs): # noqa: E501 Args: headers ([ResultDimensionHeader]): - local_identifier (str): + local_identifier (str): Local identifier of the dimension. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types 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 287d6c72d..a4769ebb4 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 @@ -31,14 +31,14 @@ def lazy_import(): - from gooddata_api_client.model.attribute_header_out import AttributeHeaderOut - from gooddata_api_client.model.attribute_header_out_attribute_header import AttributeHeaderOutAttributeHeader + from gooddata_api_client.model.attribute_header import AttributeHeader + from gooddata_api_client.model.attribute_header_attribute_header import AttributeHeaderAttributeHeader from gooddata_api_client.model.measure_group_headers import MeasureGroupHeaders - from gooddata_api_client.model.measure_header_out import MeasureHeaderOut - globals()['AttributeHeaderOut'] = AttributeHeaderOut - globals()['AttributeHeaderOutAttributeHeader'] = AttributeHeaderOutAttributeHeader + from gooddata_api_client.model.measure_header import MeasureHeader + globals()['AttributeHeader'] = AttributeHeader + globals()['AttributeHeaderAttributeHeader'] = AttributeHeaderAttributeHeader globals()['MeasureGroupHeaders'] = MeasureGroupHeaders - globals()['MeasureHeaderOut'] = MeasureHeaderOut + globals()['MeasureHeader'] = MeasureHeader class ResultDimensionHeader(ModelComposed): @@ -94,8 +94,10 @@ def openapi_types(): """ lazy_import() return { - 'measure_group_headers': ([MeasureHeaderOut],), # noqa: E501 - 'attribute_header': (AttributeHeaderOutAttributeHeader,), # noqa: E501 + 'first': (MeasureHeader,), # noqa: E501 + 'last': (MeasureHeader,), # noqa: E501 + 'measure_group_headers': ([MeasureHeader],), # noqa: E501 + 'attribute_header': (AttributeHeaderAttributeHeader,), # noqa: E501 } @cached_property @@ -104,6 +106,8 @@ def discriminator(): attribute_map = { + 'first': 'first', # noqa: E501 + 'last': 'last', # noqa: E501 'measure_group_headers': 'measureGroupHeaders', # noqa: E501 'attribute_header': 'attributeHeader', # noqa: E501 } @@ -147,8 +151,10 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - measure_group_headers ([MeasureHeaderOut]): [optional] # noqa: E501 - attribute_header (AttributeHeaderOutAttributeHeader): [optional] # noqa: E501 + first (MeasureHeader): [optional] # noqa: E501 + last (MeasureHeader): [optional] # noqa: E501 + measure_group_headers ([MeasureHeader]): [optional] # noqa: E501 + attribute_header (AttributeHeaderAttributeHeader): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -252,8 +258,10 @@ 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,) - measure_group_headers ([MeasureHeaderOut]): [optional] # noqa: E501 - attribute_header (AttributeHeaderOutAttributeHeader): [optional] # noqa: E501 + first (MeasureHeader): [optional] # noqa: E501 + last (MeasureHeader): [optional] # noqa: E501 + measure_group_headers ([MeasureHeader]): [optional] # noqa: E501 + attribute_header (AttributeHeaderAttributeHeader): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -325,7 +333,7 @@ def _composed_schemas(): 'allOf': [ ], 'oneOf': [ - AttributeHeaderOut, + AttributeHeader, MeasureGroupHeaders, ], } diff --git a/gooddata-api-client/gooddata_api_client/model/simple_measure_definition_measure.py b/gooddata-api-client/gooddata_api_client/model/simple_measure_definition_measure.py index 19fd7c9b3..6f3358e81 100644 --- a/gooddata-api-client/gooddata_api_client/model/simple_measure_definition_measure.py +++ b/gooddata-api-client/gooddata_api_client/model/simple_measure_definition_measure.py @@ -163,7 +163,7 @@ def _from_openapi_data(cls, item, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) aggregation (str): Definition of aggregation type of the metric.. [optional] # noqa: E501 - compute_ratio (bool): If true compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).. [optional] if omitted the server will use the default value of False # noqa: E501 + compute_ratio (bool): If true, compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).. [optional] if omitted the server will use the default value of False # noqa: E501 filters ([FilterDefinitionForSimpleMeasure]): Metrics can be filtered by attribute filters with the same interface as ones for global AFM. Note that only one DateFilter is allowed.. [optional] # noqa: E501 """ @@ -255,7 +255,7 @@ def __init__(self, item, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) aggregation (str): Definition of aggregation type of the metric.. [optional] # noqa: E501 - compute_ratio (bool): If true compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).. [optional] if omitted the server will use the default value of False # noqa: E501 + compute_ratio (bool): If true, compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).. [optional] if omitted the server will use the default value of False # noqa: E501 filters ([FilterDefinitionForSimpleMeasure]): Metrics can be filtered by attribute filters with the same interface as ones for global AFM. Note that only one DateFilter is allowed.. [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/sort_key_attribute_attribute.py b/gooddata-api-client/gooddata_api_client/model/sort_key_attribute_attribute.py index 3acd779e4..e36b95334 100644 --- a/gooddata-api-client/gooddata_api_client/model/sort_key_attribute_attribute.py +++ b/gooddata-api-client/gooddata_api_client/model/sort_key_attribute_attribute.py @@ -153,7 +153,7 @@ def _from_openapi_data(cls, attribute_identifier, *args, **kwargs): # noqa: E50 through its discriminator because we passed in _visited_composed_classes = (Animal,) direction (str): Sorting elements - ascending/descending order.. [optional] # noqa: E501 - sort_type (str): Mechanism by which this attribute should be sorted. Available options are: - DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) - LABEL: sorting by this label values - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) - AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions.. [optional] if omitted the server will use the default value of "DEFAULT" # noqa: E501 + sort_type (str): Mechanism by which this attribute should be sorted. Available options are: - DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) - LABEL: sorting by this label values - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label)- AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions.. [optional] if omitted the server will use the default value of "DEFAULT" # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -244,7 +244,7 @@ def __init__(self, attribute_identifier, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) direction (str): Sorting elements - ascending/descending order.. [optional] # noqa: E501 - sort_type (str): Mechanism by which this attribute should be sorted. Available options are: - DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) - LABEL: sorting by this label values - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) - AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions.. [optional] if omitted the server will use the default value of "DEFAULT" # noqa: E501 + sort_type (str): Mechanism by which this attribute should be sorted. Available options are: - DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) - LABEL: sorting by this label values - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label)- AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions.. [optional] if omitted the server will use the default value of "DEFAULT" # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/sort_key_total_total.py b/gooddata-api-client/gooddata_api_client/model/sort_key_total_total.py index d52341af1..33d92bde1 100644 --- a/gooddata-api-client/gooddata_api_client/model/sort_key_total_total.py +++ b/gooddata-api-client/gooddata_api_client/model/sort_key_total_total.py @@ -119,7 +119,7 @@ def _from_openapi_data(cls, total_identifier, *args, **kwargs): # noqa: E501 """SortKeyTotalTotal - a model defined in OpenAPI Args: - total_identifier (str): + total_identifier (str): Local identifier of the total to sort by. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -210,7 +210,7 @@ def __init__(self, total_identifier, *args, **kwargs): # noqa: E501 """SortKeyTotalTotal - a model defined in OpenAPI Args: - total_identifier (str): + total_identifier (str): Local identifier of the total to sort by. Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/suggestion.py b/gooddata-api-client/gooddata_api_client/model/suggestion.py new file mode 100644 index 000000000..c69045453 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/suggestion.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 + + + +class Suggestion(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 + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'label': (str,), # noqa: E501 + 'query': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'label': 'label', # noqa: E501 + 'query': 'query', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, label, query, *args, **kwargs): # noqa: E501 + """Suggestion - a model defined in OpenAPI + + Args: + label (str): Suggestion button label + query (str): Suggestion query + + 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.label = label + self.query = query + 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, label, query, *args, **kwargs): # noqa: E501 + """Suggestion - a model defined in OpenAPI + + Args: + label (str): Suggestion button label + query (str): Suggestion query + + 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.label = label + self.query = query + 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/tabular_export_request.py b/gooddata-api-client/gooddata_api_client/model/tabular_export_request.py index 0b2184743..8cc8c696b 100644 --- a/gooddata-api-client/gooddata_api_client/model/tabular_export_request.py +++ b/gooddata-api-client/gooddata_api_client/model/tabular_export_request.py @@ -177,7 +177,7 @@ def _from_openapi_data(cls, file_name, format, *args, **kwargs): # noqa: E501 related_dashboard_id (str): Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard.. [optional] # noqa: E501 settings (Settings): [optional] # noqa: E501 visualization_object (str): Visualization object identifier. Alternative to executionResult property.. [optional] # noqa: E501 - visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only). [optional] # noqa: E501 + visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -275,7 +275,7 @@ def __init__(self, file_name, format, *args, **kwargs): # noqa: E501 related_dashboard_id (str): Analytical dashboard identifier. Optional identifier, which informs the system that the export is related to a specific dashboard.. [optional] # noqa: E501 settings (Settings): [optional] # noqa: E501 visualization_object (str): Visualization object identifier. Alternative to executionResult property.. [optional] # noqa: E501 - visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only). [optional] # noqa: E501 + visualization_object_custom_filters ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/test_destination_request.py b/gooddata-api-client/gooddata_api_client/model/test_destination_request.py new file mode 100644 index 000000000..8b6821e7b --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/test_destination_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.declarative_notification_channel_destination import DeclarativeNotificationChannelDestination + globals()['DeclarativeNotificationChannelDestination'] = DeclarativeNotificationChannelDestination + + +class TestDestinationRequest(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 { + 'destination': (DeclarativeNotificationChannelDestination,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'destination': 'destination', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, destination, *args, **kwargs): # noqa: E501 + """TestDestinationRequest - a model defined in OpenAPI + + Args: + destination (DeclarativeNotificationChannelDestination): + + 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.destination = destination + 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, destination, *args, **kwargs): # noqa: E501 + """TestDestinationRequest - a model defined in OpenAPI + + Args: + destination (DeclarativeNotificationChannelDestination): + + 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.destination = destination + 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/test_notification.py b/gooddata-api-client/gooddata_api_client/model/test_notification.py new file mode 100644 index 000000000..f96bb0540 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/test_notification.py @@ -0,0 +1,337 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.automation_notification import AutomationNotification + from gooddata_api_client.model.notification_content import NotificationContent + from gooddata_api_client.model.test_notification import TestNotification + from gooddata_api_client.model.test_notification_all_of import TestNotificationAllOf + globals()['AutomationNotification'] = AutomationNotification + globals()['NotificationContent'] = NotificationContent + globals()['TestNotification'] = TestNotification + globals()['TestNotificationAllOf'] = TestNotificationAllOf + + +class TestNotification(ModelComposed): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + 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 { + 'message': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + lazy_import() + val = { + 'AUTOMATION': AutomationNotification, + 'TEST': TestNotification, + } + if not val: + return None + return {'type': val} + + attribute_map = { + 'message': 'message', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """TestNotification - a model defined in OpenAPI + + Keyword Args: + message (str): + type (str): + _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', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + '_composed_instances', + '_var_name_to_model_instances', + '_additional_properties_model_instances', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """TestNotification - a model defined in OpenAPI + + Keyword Args: + message (str): + type (str): + _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__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") + + @cached_property + def _composed_schemas(): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + lazy_import() + return { + 'anyOf': [ + ], + 'allOf': [ + NotificationContent, + TestNotificationAllOf, + ], + 'oneOf': [ + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/test_notification_all_of.py b/gooddata-api-client/gooddata_api_client/model/test_notification_all_of.py new file mode 100644 index 000000000..364d99719 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/test_notification_all_of.py @@ -0,0 +1,264 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class TestNotificationAllOf(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 + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'message': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'message': 'message', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """TestNotificationAllOf - 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,) + message (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """TestNotificationAllOf - 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,) + message (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/webhook_automation_info.py b/gooddata-api-client/gooddata_api_client/model/webhook_automation_info.py new file mode 100644 index 000000000..c9759d7cf --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/webhook_automation_info.py @@ -0,0 +1,286 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class WebhookAutomationInfo(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 + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'dashboard_url': (str,), # noqa: E501 + 'id': (str,), # noqa: E501 + 'is_custom_dashboard_url': (bool,), # noqa: E501 + 'title': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'dashboard_url': 'dashboardURL', # noqa: E501 + 'id': 'id', # noqa: E501 + 'is_custom_dashboard_url': 'isCustomDashboardURL', # noqa: E501 + 'title': 'title', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, dashboard_url, id, is_custom_dashboard_url, *args, **kwargs): # noqa: E501 + """WebhookAutomationInfo - a model defined in OpenAPI + + Args: + dashboard_url (str): + id (str): + is_custom_dashboard_url (bool): + + 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,) + title (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.dashboard_url = dashboard_url + self.id = id + self.is_custom_dashboard_url = is_custom_dashboard_url + 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, dashboard_url, id, is_custom_dashboard_url, *args, **kwargs): # noqa: E501 + """WebhookAutomationInfo - a model defined in OpenAPI + + Args: + dashboard_url (str): + id (str): + is_custom_dashboard_url (bool): + + 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,) + title (str): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.dashboard_url = dashboard_url + self.id = id + self.is_custom_dashboard_url = is_custom_dashboard_url + 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/webhook_message.py b/gooddata-api-client/gooddata_api_client/model/webhook_message.py new file mode 100644 index 000000000..3ec58be50 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/webhook_message.py @@ -0,0 +1,292 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.webhook_message_data import WebhookMessageData + globals()['WebhookMessageData'] = WebhookMessageData + + +class WebhookMessage(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('type',): { + 'COMPLETED': "automation-task.completed", + 'LIMIT-EXCEEDED': "automation-task.limit-exceeded", + }, + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'data': (WebhookMessageData,), # noqa: E501 + 'timestamp': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + 'timestamp': 'timestamp', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, timestamp, type, *args, **kwargs): # noqa: E501 + """WebhookMessage - a model defined in OpenAPI + + Args: + data (WebhookMessageData): + timestamp (str): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + self.timestamp = timestamp + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, data, timestamp, type, *args, **kwargs): # noqa: E501 + """WebhookMessage - a model defined in OpenAPI + + Args: + data (WebhookMessageData): + timestamp (str): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + self.timestamp = timestamp + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/webhook_message_data.py b/gooddata-api-client/gooddata_api_client/model/webhook_message_data.py new file mode 100644 index 000000000..addb33f76 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/webhook_message_data.py @@ -0,0 +1,306 @@ +""" + 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.alert_description import AlertDescription + from gooddata_api_client.model.export_result import ExportResult + from gooddata_api_client.model.webhook_automation_info import WebhookAutomationInfo + from gooddata_api_client.model.webhook_recipient import WebhookRecipient + globals()['AlertDescription'] = AlertDescription + globals()['ExportResult'] = ExportResult + globals()['WebhookAutomationInfo'] = WebhookAutomationInfo + globals()['WebhookRecipient'] = WebhookRecipient + + +class WebhookMessageData(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': (WebhookAutomationInfo,), # noqa: E501 + 'alert': (AlertDescription,), # noqa: E501 + 'details': ({str: (str,)},), # noqa: E501 + 'recipients': ([WebhookRecipient],), # noqa: E501 + 'remaining_action_count': (int,), # noqa: E501 + 'tabular_exports': ([ExportResult],), # noqa: E501 + 'visual_exports': ([ExportResult],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'automation': 'automation', # noqa: E501 + 'alert': 'alert', # noqa: E501 + 'details': 'details', # noqa: E501 + 'recipients': 'recipients', # noqa: E501 + 'remaining_action_count': 'remainingActionCount', # noqa: E501 + 'tabular_exports': 'tabularExports', # noqa: E501 + 'visual_exports': 'visualExports', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, automation, *args, **kwargs): # noqa: E501 + """WebhookMessageData - a model defined in OpenAPI + + Args: + automation (WebhookAutomationInfo): + + 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,) + alert (AlertDescription): [optional] # noqa: E501 + details ({str: (str,)}): [optional] # noqa: E501 + recipients ([WebhookRecipient]): [optional] # noqa: E501 + remaining_action_count (int): [optional] # noqa: E501 + tabular_exports ([ExportResult]): [optional] # noqa: E501 + visual_exports ([ExportResult]): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.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 + """WebhookMessageData - a model defined in OpenAPI + + Args: + automation (WebhookAutomationInfo): + + 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,) + alert (AlertDescription): [optional] # noqa: E501 + details ({str: (str,)}): [optional] # noqa: E501 + recipients ([WebhookRecipient]): [optional] # noqa: E501 + remaining_action_count (int): [optional] # noqa: E501 + tabular_exports ([ExportResult]): [optional] # noqa: E501 + visual_exports ([ExportResult]): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.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/model/webhook_recipient.py b/gooddata-api-client/gooddata_api_client/model/webhook_recipient.py new file mode 100644 index 000000000..56634f388 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/webhook_recipient.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 + + + +class WebhookRecipient(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 + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'email': (str,), # noqa: E501 + 'id': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'email': 'email', # noqa: E501 + 'id': 'id', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, email, id, *args, **kwargs): # noqa: E501 + """WebhookRecipient - a model defined in OpenAPI + + Args: + email (str): + id (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', 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.email = email + self.id = id + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + 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, email, id, *args, **kwargs): # noqa: E501 + """WebhookRecipient - a model defined in OpenAPI + + Args: + email (str): + id (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + 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.email = email + self.id = id + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + 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 41dd9cda2..4a383a6bb 100644 --- a/gooddata-api-client/gooddata_api_client/models/__init__.py +++ b/gooddata-api-client/gooddata_api_client/models/__init__.py @@ -35,6 +35,8 @@ from gooddata_api_client.model.alert_afm import AlertAfm from gooddata_api_client.model.alert_condition import AlertCondition from gooddata_api_client.model.alert_condition_operand import AlertConditionOperand +from gooddata_api_client.model.alert_description import AlertDescription +from gooddata_api_client.model.alert_evaluation_row import AlertEvaluationRow from gooddata_api_client.model.anomaly_detection_request import AnomalyDetectionRequest from gooddata_api_client.model.anomaly_detection_result import AnomalyDetectionResult from gooddata_api_client.model.api_entitlement import ApiEntitlement @@ -47,8 +49,8 @@ from gooddata_api_client.model.attribute_filter import AttributeFilter from gooddata_api_client.model.attribute_filter_elements import AttributeFilterElements from gooddata_api_client.model.attribute_format import AttributeFormat -from gooddata_api_client.model.attribute_header_out import AttributeHeaderOut -from gooddata_api_client.model.attribute_header_out_attribute_header import AttributeHeaderOutAttributeHeader +from gooddata_api_client.model.attribute_header import AttributeHeader +from gooddata_api_client.model.attribute_header_attribute_header import AttributeHeaderAttributeHeader from gooddata_api_client.model.attribute_item import AttributeItem from gooddata_api_client.model.attribute_negative_filter import AttributeNegativeFilter from gooddata_api_client.model.attribute_negative_filter_all_of import AttributeNegativeFilterAllOf @@ -57,6 +59,9 @@ from gooddata_api_client.model.attribute_result_header import AttributeResultHeader from gooddata_api_client.model.automation_alert import AutomationAlert from gooddata_api_client.model.automation_alert_condition import AutomationAlertCondition +from gooddata_api_client.model.automation_external_recipient import AutomationExternalRecipient +from gooddata_api_client.model.automation_notification import AutomationNotification +from gooddata_api_client.model.automation_notification_all_of import AutomationNotificationAllOf from gooddata_api_client.model.automation_schedule import AutomationSchedule from gooddata_api_client.model.automation_tabular_export import AutomationTabularExport from gooddata_api_client.model.automation_visual_export import AutomationVisualExport @@ -210,6 +215,7 @@ from gooddata_api_client.model.execution_settings import ExecutionSettings from gooddata_api_client.model.export_request import ExportRequest from gooddata_api_client.model.export_response import ExportResponse +from gooddata_api_client.model.export_result import ExportResult from gooddata_api_client.model.file import File from gooddata_api_client.model.filter import Filter from gooddata_api_client.model.filter_by import FilterBy @@ -306,6 +312,7 @@ from gooddata_api_client.model.json_api_automation_in import JsonApiAutomationIn from gooddata_api_client.model.json_api_automation_in_attributes import JsonApiAutomationInAttributes from gooddata_api_client.model.json_api_automation_in_attributes_alert import JsonApiAutomationInAttributesAlert +from gooddata_api_client.model.json_api_automation_in_attributes_external_recipients_inner import JsonApiAutomationInAttributesExternalRecipientsInner from gooddata_api_client.model.json_api_automation_in_attributes_schedule import JsonApiAutomationInAttributesSchedule from gooddata_api_client.model.json_api_automation_in_attributes_tabular_exports_inner import JsonApiAutomationInAttributesTabularExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_visual_exports_inner import JsonApiAutomationInAttributesVisualExportsInner @@ -484,6 +491,7 @@ from gooddata_api_client.model.json_api_identity_provider_out_list import JsonApiIdentityProviderOutList from gooddata_api_client.model.json_api_identity_provider_out_with_links import JsonApiIdentityProviderOutWithLinks from gooddata_api_client.model.json_api_identity_provider_patch import JsonApiIdentityProviderPatch +from gooddata_api_client.model.json_api_identity_provider_patch_attributes import JsonApiIdentityProviderPatchAttributes from gooddata_api_client.model.json_api_identity_provider_patch_document import JsonApiIdentityProviderPatchDocument from gooddata_api_client.model.json_api_jwk_in import JsonApiJwkIn from gooddata_api_client.model.json_api_jwk_in_attributes import JsonApiJwkInAttributes @@ -540,6 +548,7 @@ from gooddata_api_client.model.json_api_notification_channel_in_document import JsonApiNotificationChannelInDocument from gooddata_api_client.model.json_api_notification_channel_linkage import JsonApiNotificationChannelLinkage from gooddata_api_client.model.json_api_notification_channel_out import JsonApiNotificationChannelOut +from gooddata_api_client.model.json_api_notification_channel_out_attributes import JsonApiNotificationChannelOutAttributes from gooddata_api_client.model.json_api_notification_channel_out_document import JsonApiNotificationChannelOutDocument from gooddata_api_client.model.json_api_notification_channel_out_list import JsonApiNotificationChannelOutList from gooddata_api_client.model.json_api_notification_channel_out_with_links import JsonApiNotificationChannelOutWithLinks @@ -715,16 +724,23 @@ from gooddata_api_client.model.measure_definition import MeasureDefinition from gooddata_api_client.model.measure_execution_result_header import MeasureExecutionResultHeader from gooddata_api_client.model.measure_group_headers import MeasureGroupHeaders -from gooddata_api_client.model.measure_header_out import MeasureHeaderOut +from gooddata_api_client.model.measure_header import MeasureHeader from gooddata_api_client.model.measure_item import MeasureItem from gooddata_api_client.model.measure_result_header import MeasureResultHeader from gooddata_api_client.model.measure_value_filter import MeasureValueFilter from gooddata_api_client.model.metric import Metric +from gooddata_api_client.model.metric_record import MetricRecord from gooddata_api_client.model.negative_attribute_filter import NegativeAttributeFilter from gooddata_api_client.model.negative_attribute_filter_negative_attribute_filter import NegativeAttributeFilterNegativeAttributeFilter from gooddata_api_client.model.note import Note from gooddata_api_client.model.notes import Notes +from gooddata_api_client.model.notification import Notification from gooddata_api_client.model.notification_channel_destination import NotificationChannelDestination +from gooddata_api_client.model.notification_content import NotificationContent +from gooddata_api_client.model.notification_data import NotificationData +from gooddata_api_client.model.notifications import Notifications +from gooddata_api_client.model.notifications_meta import NotificationsMeta +from gooddata_api_client.model.notifications_meta_total import NotificationsMetaTotal from gooddata_api_client.model.object_links import ObjectLinks from gooddata_api_client.model.object_links_container import ObjectLinksContainer from gooddata_api_client.model.organization_permission_assignment import OrganizationPermissionAssignment @@ -768,7 +784,6 @@ from gooddata_api_client.model.result_dimension import ResultDimension from gooddata_api_client.model.result_dimension_header import ResultDimensionHeader from gooddata_api_client.model.result_spec import ResultSpec -from gooddata_api_client.model.route_request import RouteRequest from gooddata_api_client.model.route_result import RouteResult from gooddata_api_client.model.rsa_specification import RsaSpecification from gooddata_api_client.model.rule_permission import RulePermission @@ -797,12 +812,16 @@ from gooddata_api_client.model.sql_column import SqlColumn from gooddata_api_client.model.sql_query import SqlQuery from gooddata_api_client.model.sql_query_all_of import SqlQueryAllOf +from gooddata_api_client.model.suggestion import Suggestion from gooddata_api_client.model.table import Table from gooddata_api_client.model.table_all_of import TableAllOf from gooddata_api_client.model.table_override import TableOverride from gooddata_api_client.model.table_warning import TableWarning from gooddata_api_client.model.tabular_export_request import TabularExportRequest from gooddata_api_client.model.test_definition_request import TestDefinitionRequest +from gooddata_api_client.model.test_destination_request import TestDestinationRequest +from gooddata_api_client.model.test_notification import TestNotification +from gooddata_api_client.model.test_notification_all_of import TestNotificationAllOf from gooddata_api_client.model.test_query_duration import TestQueryDuration from gooddata_api_client.model.test_request import TestRequest from gooddata_api_client.model.test_response import TestResponse @@ -830,6 +849,10 @@ from gooddata_api_client.model.visual_export_request import VisualExportRequest from gooddata_api_client.model.webhook import Webhook from gooddata_api_client.model.webhook_all_of import WebhookAllOf +from gooddata_api_client.model.webhook_automation_info import WebhookAutomationInfo +from gooddata_api_client.model.webhook_message import WebhookMessage +from gooddata_api_client.model.webhook_message_data import WebhookMessageData +from gooddata_api_client.model.webhook_recipient import WebhookRecipient from gooddata_api_client.model.workspace_data_source import WorkspaceDataSource from gooddata_api_client.model.workspace_identifier import WorkspaceIdentifier from gooddata_api_client.model.workspace_permission_assignment import WorkspacePermissionAssignment diff --git a/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/identity_provider.py b/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/identity_provider.py index 5e4850271..2ba992fbc 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/identity_provider.py +++ b/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/identity_provider.py @@ -7,6 +7,9 @@ from gooddata_api_client.model.json_api_identity_provider_in import JsonApiIdentityProviderIn from gooddata_api_client.model.json_api_identity_provider_in_attributes import JsonApiIdentityProviderInAttributes from gooddata_api_client.model.json_api_identity_provider_in_document import JsonApiIdentityProviderInDocument +from gooddata_api_client.model.json_api_identity_provider_patch import JsonApiIdentityProviderPatch +from gooddata_api_client.model.json_api_identity_provider_patch_attributes import JsonApiIdentityProviderPatchAttributes +from gooddata_api_client.model.json_api_identity_provider_patch_document import JsonApiIdentityProviderPatchDocument from gooddata_sdk.catalog.base import Base from gooddata_sdk.utils import safeget @@ -38,7 +41,6 @@ def init( identifiers: Optional[list[str]] = None, oauth_client_id: Optional[str] = None, oauth_client_secret: Optional[str] = None, - oauth_issuer_id: Optional[str] = None, oauth_issuer_location: Optional[str] = None, saml_metadata: Optional[str] = None, ) -> CatalogIdentityProvider: @@ -49,7 +51,6 @@ def init( identifiers=identifiers, oauth_client_id=oauth_client_id, oauth_client_secret=oauth_client_secret, - oauth_issuer_id=oauth_issuer_id, oauth_issuer_location=oauth_issuer_location, saml_metadata=saml_metadata, ), @@ -63,7 +64,6 @@ def from_api(cls, entity: dict[str, Any]) -> CatalogIdentityProvider: identifiers=safeget(ea, ["identifiers"]), oauth_client_id=safeget(ea, ["oauth_client_id"]), oauth_client_secret=safeget(ea, ["oauth_client_secret"]), - oauth_issuer_id=safeget(ea, ["oauth_issuer_id"]), oauth_issuer_location=safeget(ea, ["oauth_issuer_location"]), saml_metadata=safeget(ea, ["saml_metadata"]), ) @@ -72,6 +72,14 @@ def from_api(cls, entity: dict[str, Any]) -> CatalogIdentityProvider: attributes=attr, ) + @classmethod + def to_api_patch(cls, identity_provider_id: str, attributes: dict) -> JsonApiIdentityProviderPatchDocument: + return JsonApiIdentityProviderPatchDocument( + data=JsonApiIdentityProviderPatch( + id=identity_provider_id, attributes=JsonApiIdentityProviderPatchAttributes(**attributes) + ) + ) + @attr.s(auto_attribs=True, kw_only=True) class CatalogIdentityProviderAttributes(Base): @@ -79,7 +87,6 @@ class CatalogIdentityProviderAttributes(Base): identifiers: Optional[list[str]] = None oauth_client_id: Optional[str] = None oauth_client_secret: Optional[str] = None - oauth_issuer_id: Optional[str] = None oauth_issuer_location: Optional[str] = None saml_metadata: Optional[str] = None diff --git a/gooddata-sdk/gooddata_sdk/catalog/organization/layout/identity_provider.py b/gooddata-sdk/gooddata_sdk/catalog/organization/layout/identity_provider.py index 3d338a1ca..f1a5509d3 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/organization/layout/identity_provider.py +++ b/gooddata-sdk/gooddata_sdk/catalog/organization/layout/identity_provider.py @@ -15,7 +15,6 @@ class CatalogDeclarativeIdentityProvider(Base): identifiers: Optional[list[str]] = None oauth_client_id: Optional[str] = None oauth_client_secret: Optional[str] = None - oauth_issuer_id: Optional[str] = None oauth_issuer_location: Optional[str] = None saml_metadata: Optional[str] = None diff --git a/gooddata-sdk/gooddata_sdk/catalog/organization/service.py b/gooddata-sdk/gooddata_sdk/catalog/organization/service.py index 8825f14d1..d7c9961cd 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/organization/service.py +++ b/gooddata-sdk/gooddata_sdk/catalog/organization/service.py @@ -407,6 +407,23 @@ def update_identity_provider(self, identity_provider: CatalogIdentityProvider) - f"Can not update {identity_provider.id} identity provider. This identity provider does not exist." ) + def patch_identity_provider_attributes(self, identity_provider_id: str, attributes: dict) -> None: + """Applies changes to the specified identity provider. + + Args: + identity_provider_id (str): + Identity Provider identification string. e.g. "auth0" + attributes (dict): + A dictionary containing attributes of the identity provider to be changed. + + Returns: + None + """ + + self._entities_api.patch_entity_identity_providers( + identity_provider_id, CatalogIdentityProvider.to_api_patch(identity_provider_id, attributes) + ) + # Layout APIs def get_declarative_notification_channels(self) -> list[CatalogDeclarativeNotificationChannel]: diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/create_identity_provider.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/create_identity_provider.yaml deleted file mode 100644 index f6a1ba33f..000000000 --- a/gooddata-sdk/tests/catalog/fixtures/organization/create_identity_provider.yaml +++ /dev/null @@ -1,326 +0,0 @@ -# (C) 2024 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/entities/identityProviders - body: - data: - id: test_identity_provider - type: identityProvider - attributes: - customClaimMapping: - email: email - identifiers: - - goodtesting.com - oauthClientId: test_client_id - oauthClientSecret: test_client_secret - oauthIssuerId: test_issuer_id - oauthIssuerLocation: https://issuer.goodtesting.com - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/vnd.gooddata.api+json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 201 - message: Created - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '373' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:23 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: - id: test_identity_provider - type: identityProvider - attributes: - identifiers: - - goodtesting.com - customClaimMapping: - email: email - oauthClientId: test_client_id - oauthIssuerLocation: https://issuer.goodtesting.com - oauthIssuerId: test_issuer_id - links: - self: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - body: null - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '373' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:23 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: - id: test_identity_provider - type: identityProvider - attributes: - identifiers: - - goodtesting.com - customClaimMapping: - email: email - oauthClientId: test_client_id - oauthIssuerLocation: https://issuer.goodtesting.com - oauthIssuerId: test_issuer_id - links: - self: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - - request: - method: DELETE - uri: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:23 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - body: null - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '183' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:23 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: [] - links: - self: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - next: http://localhost:3000/api/v1/entities/identityProviders?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/delete_identity_provider.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/delete_identity_provider.yaml deleted file mode 100644 index cd6fb55f8..000000000 --- a/gooddata-sdk/tests/catalog/fixtures/organization/delete_identity_provider.yaml +++ /dev/null @@ -1,393 +0,0 @@ -# (C) 2024 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/entities/identityProviders - body: - data: - id: test_identity_provider - type: identityProvider - attributes: - customClaimMapping: - email: email - identifiers: - - goodtesting.com - oauthClientId: test_client_id - oauthClientSecret: test_client_secret - oauthIssuerId: test_issuer_id - oauthIssuerLocation: https://issuer.goodtesting.com - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/vnd.gooddata.api+json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 201 - message: Created - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '373' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:24 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: - id: test_identity_provider - type: identityProvider - attributes: - identifiers: - - goodtesting.com - customClaimMapping: - email: email - oauthClientId: test_client_id - oauthIssuerLocation: https://issuer.goodtesting.com - oauthIssuerId: test_issuer_id - links: - self: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - - request: - method: DELETE - uri: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:24 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - body: null - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 404 - message: Not Found - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '172' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/problem+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:24 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 674490cc6c7b69e73b0d3e3e900238a4 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - body: null - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '183' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:24 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: [] - links: - self: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - next: http://localhost:3000/api/v1/entities/identityProviders?page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - body: null - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '183' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:24 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: [] - links: - self: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - next: http://localhost:3000/api/v1/entities/identityProviders?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/layout_identity_providers.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/layout_identity_providers.yaml deleted file mode 100644 index 68880e6b5..000000000 --- a/gooddata-sdk/tests/catalog/fixtures/organization/layout_identity_providers.yaml +++ /dev/null @@ -1,370 +0,0 @@ -# (C) 2024 GoodData Corporation -version: 1 -interactions: - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/identityProviders - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '2' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:25 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: [] - - request: - method: PUT - uri: http://localhost:3000/api/v1/layout/identityProviders - body: - - id: test_identity_provider - customClaimMapping: - email: email - identifiers: - - goodtesting.com - oauthClientId: test_client_id - oauthClientSecret: test_client_secret - oauthIssuerId: test_issuer_id - oauthIssuerLocation: https://issuer.goodtesting.com - headers: - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:25 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/identityProviders - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Transfer-Encoding: - - chunked - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - content-length: - - '227' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:25 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - - customClaimMapping: - email: email - id: test_identity_provider - identifiers: - - goodtesting.com - oauthClientId: test_client_id - oauthIssuerId: test_issuer_id - oauthIssuerLocation: https://issuer.goodtesting.com - - request: - method: PUT - uri: http://localhost:3000/api/v1/layout/identityProviders - body: [] - headers: - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:25 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/identityProviders - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '2' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:25 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: [] diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/list_identity_providers.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/list_identity_providers.yaml deleted file mode 100644 index c521d6fb3..000000000 --- a/gooddata-sdk/tests/catalog/fixtures/organization/list_identity_providers.yaml +++ /dev/null @@ -1,504 +0,0 @@ -# (C) 2024 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/entities/identityProviders - body: - data: - id: test_identity_provider_1 - type: identityProvider - attributes: - customClaimMapping: - email: email - identifiers: - - goodtesting.com - oauthClientId: test_client_id_1 - oauthClientSecret: test_client_secret_1 - oauthIssuerId: test_issuer_id_1 - oauthIssuerLocation: https://issuer.goodtesting.com - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/vnd.gooddata.api+json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 201 - message: Created - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '381' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:23 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: - id: test_identity_provider_1 - type: identityProvider - attributes: - identifiers: - - goodtesting.com - customClaimMapping: - email: email - oauthClientId: test_client_id_1 - oauthIssuerLocation: https://issuer.goodtesting.com - oauthIssuerId: test_issuer_id_1 - links: - self: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider_1 - - request: - method: POST - uri: http://localhost:3000/api/v1/entities/identityProviders - body: - data: - id: test_identity_provider_2 - type: identityProvider - attributes: - customClaimMapping: - email: email - identifiers: - - goodtesting.com - oauthClientId: test_client_id_2 - oauthClientSecret: test_client_secret_2 - oauthIssuerId: test_issuer_id_2 - oauthIssuerLocation: https://issuer.goodtesting.com - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/vnd.gooddata.api+json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 201 - message: Created - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '381' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:24 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: - id: test_identity_provider_2 - type: identityProvider - attributes: - identifiers: - - goodtesting.com - customClaimMapping: - email: email - oauthClientId: test_client_id_2 - oauthIssuerLocation: https://issuer.goodtesting.com - oauthIssuerId: test_issuer_id_2 - links: - self: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider_2 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - body: null - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '928' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:24 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: - - id: test_identity_provider_1 - type: identityProvider - attributes: - identifiers: - - goodtesting.com - customClaimMapping: - email: email - oauthClientId: test_client_id_1 - oauthIssuerLocation: https://issuer.goodtesting.com - oauthIssuerId: test_issuer_id_1 - links: - self: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider_1 - - id: test_identity_provider_2 - type: identityProvider - attributes: - identifiers: - - goodtesting.com - customClaimMapping: - email: email - oauthClientId: test_client_id_2 - oauthIssuerLocation: https://issuer.goodtesting.com - oauthIssuerId: test_issuer_id_2 - links: - self: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider_2 - links: - self: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - next: http://localhost:3000/api/v1/entities/identityProviders?page=1&size=500 - - request: - method: DELETE - uri: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider_1 - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:24 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: '' - - request: - method: DELETE - uri: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider_2 - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:24 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - body: null - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '183' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:24 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: [] - links: - self: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - next: http://localhost:3000/api/v1/entities/identityProviders?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/update_identity_provider.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/update_identity_provider.yaml deleted file mode 100644 index bb533f591..000000000 --- a/gooddata-sdk/tests/catalog/fixtures/organization/update_identity_provider.yaml +++ /dev/null @@ -1,427 +0,0 @@ -# (C) 2024 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/entities/identityProviders - body: - data: - id: test_identity_provider - type: identityProvider - attributes: - customClaimMapping: - email: email - identifiers: - - goodtesting.com - oauthClientId: test_client_id - oauthClientSecret: test_client_secret - oauthIssuerId: test_issuer_id - oauthIssuerLocation: https://issuer.goodtesting.com - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/vnd.gooddata.api+json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 201 - message: Created - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '373' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:25 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: - id: test_identity_provider - type: identityProvider - attributes: - identifiers: - - goodtesting.com - customClaimMapping: - email: email - oauthClientId: test_client_id - oauthIssuerLocation: https://issuer.goodtesting.com - oauthIssuerId: test_issuer_id - links: - self: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - - request: - method: PUT - uri: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - body: - data: - id: test_identity_provider - type: identityProvider - attributes: - customClaimMapping: - email: email - identifiers: - - goodtesting.com - - anotheridentifier.com - oauthClientId: test_client_id - oauthClientSecret: test_client_secret - oauthIssuerId: test_issuer_id - oauthIssuerLocation: https://issuer.goodtesting.com - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/vnd.gooddata.api+json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '397' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:25 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: - id: test_identity_provider - type: identityProvider - attributes: - identifiers: - - goodtesting.com - - anotheridentifier.com - customClaimMapping: - email: email - oauthClientId: test_client_id - oauthIssuerLocation: https://issuer.goodtesting.com - oauthIssuerId: test_issuer_id - links: - self: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - body: null - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '397' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:25 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: - id: test_identity_provider - type: identityProvider - attributes: - identifiers: - - goodtesting.com - - anotheridentifier.com - customClaimMapping: - email: email - oauthClientId: test_client_id - oauthIssuerLocation: https://issuer.goodtesting.com - oauthIssuerId: test_issuer_id - links: - self: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - - request: - method: DELETE - uri: http://localhost:3000/api/v1/entities/identityProviders/test_identity_provider - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:25 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - body: null - headers: - Accept: - - application/vnd.gooddata.api+json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '183' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com - src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdnjs.cloudflare.com; - img-src * data: blob:; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com - cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com - *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src - ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src - ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com - *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net - matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com - *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - set-cookie: - - SPRING_REDIRECT_URI=; Max-Age=0; Expires=Mon, 25 Nov 2024 14:59:25 GMT; - Path=/; HTTPOnly; SameSite=Lax - body: - string: - data: [] - links: - self: http://localhost:3000/api/v1/entities/identityProviders?page=0&size=500 - next: http://localhost:3000/api/v1/entities/identityProviders?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/test_catalog_organization.py b/gooddata-sdk/tests/catalog/test_catalog_organization.py index 9f6b63874..e142c4c4e 100644 --- a/gooddata-sdk/tests/catalog/test_catalog_organization.py +++ b/gooddata-sdk/tests/catalog/test_catalog_organization.py @@ -14,8 +14,6 @@ CatalogWebhook, GoodDataSdk, ) -from gooddata_sdk.catalog.organization.entity_model.identity_provider import CatalogIdentityProvider -from gooddata_sdk.catalog.organization.layout.identity_provider import CatalogDeclarativeIdentityProvider from tests_support.vcrpy_utils import get_vcr gd_vcr = get_vcr() @@ -378,206 +376,232 @@ def test_layout_notification_channels(test_config): assert len(ncs) == 0 -@gd_vcr.use_cassette(str(_fixtures_dir / "create_identity_provider.yaml")) -def test_create_identity_provider(test_config): - sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) - - identity_provider_id = "test_identity_provider" - custom_claim_mapping = {"email": "email"} - identifiers = ["goodtesting.com"] - oauth_client_id = "test_client_id" - oauth_client_secret = "test_client_secret" - oauth_issuer_id = "test_issuer_id" - oauth_issuer_location = "https://issuer.goodtesting.com" - - new_identity_provider = CatalogIdentityProvider.init( - identity_provider_id=identity_provider_id, - custom_claim_mapping=custom_claim_mapping, - identifiers=identifiers, - oauth_client_id=oauth_client_id, - oauth_client_secret=oauth_client_secret, - oauth_issuer_id=oauth_issuer_id, - oauth_issuer_location=oauth_issuer_location, - ) - - try: - sdk.catalog_organization.create_identity_provider(new_identity_provider) - identity_provider = sdk.catalog_organization.get_identity_provider(identity_provider_id) - assert identity_provider.id == identity_provider_id - assert identity_provider.attributes.custom_claim_mapping == custom_claim_mapping - assert identity_provider.attributes.identifiers == identifiers - assert identity_provider.attributes.oauth_client_id == oauth_client_id - assert identity_provider.attributes.oauth_client_secret is None # oauth_client_secret is not returned - assert identity_provider.attributes.oauth_issuer_id == oauth_issuer_id - assert identity_provider.attributes.oauth_issuer_location == oauth_issuer_location - finally: - sdk.catalog_organization.delete_identity_provider(identity_provider_id) - assert len(sdk.catalog_organization.list_identity_providers()) == 0 - - -@gd_vcr.use_cassette(str(_fixtures_dir / "list_identity_providers.yaml")) -def test_list_identity_providers(test_config): - sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) - - identity_provider_id = "test_identity_provider" - custom_claim_mapping = {"email": "email"} - identifiers = ["goodtesting.com"] - oauth_client_id = "test_client_id" - oauth_client_secret = "test_client_secret" - oauth_issuer_id = "test_issuer_id" - oauth_issuer_location = "https://issuer.goodtesting.com" - - new_identity_provider_1 = CatalogIdentityProvider.init( - identity_provider_id=identity_provider_id + "_1", - custom_claim_mapping=custom_claim_mapping, - identifiers=identifiers, - oauth_client_id=oauth_client_id + "_1", - oauth_client_secret=oauth_client_secret + "_1", - oauth_issuer_id=oauth_issuer_id + "_1", - oauth_issuer_location=oauth_issuer_location, - ) - new_identity_provider_2 = CatalogIdentityProvider.init( - identity_provider_id=identity_provider_id + "_2", - custom_claim_mapping=custom_claim_mapping, - identifiers=identifiers, - oauth_client_id=oauth_client_id + "_2", - oauth_client_secret=oauth_client_secret + "_2", - oauth_issuer_id=oauth_issuer_id + "_2", - oauth_issuer_location=oauth_issuer_location, - ) - - try: - sdk.catalog_organization.create_identity_provider(new_identity_provider_1) - sdk.catalog_organization.create_identity_provider(new_identity_provider_2) - identity_providers = sdk.catalog_organization.list_identity_providers() - # oauth_client_secret is not returned - new_identity_provider_1.attributes.oauth_client_secret = None - new_identity_provider_2.attributes.oauth_client_secret = None - assert len(identity_providers) == 2 - assert new_identity_provider_1 in identity_providers - assert new_identity_provider_2 in identity_providers - finally: - sdk.catalog_organization.delete_identity_provider(new_identity_provider_1.id) - sdk.catalog_organization.delete_identity_provider(new_identity_provider_2.id) - assert len(sdk.catalog_organization.list_identity_providers()) == 0 - - -@gd_vcr.use_cassette(str(_fixtures_dir / "delete_identity_provider.yaml")) -def test_delete_identity_provider(test_config): - sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) - - identity_provider_id = "test_identity_provider" - custom_claim_mapping = {"email": "email"} - identifiers = ["goodtesting.com"] - oauth_client_id = "test_client_id" - oauth_client_secret = "test_client_secret" - oauth_issuer_id = "test_issuer_id" - oauth_issuer_location = "https://issuer.goodtesting.com" - - new_identity_provider = CatalogIdentityProvider.init( - identity_provider_id=identity_provider_id, - custom_claim_mapping=custom_claim_mapping, - identifiers=identifiers, - oauth_client_id=oauth_client_id, - oauth_client_secret=oauth_client_secret, - oauth_issuer_id=oauth_issuer_id, - oauth_issuer_location=oauth_issuer_location, - ) - - try: - sdk.catalog_organization.create_identity_provider(new_identity_provider) - sdk.catalog_organization.delete_identity_provider(identity_provider_id) - sdk.catalog_organization.get_identity_provider(identity_provider_id) - except NotFoundException: - assert len(sdk.catalog_organization.list_identity_providers()) == 0 - finally: - assert len(sdk.catalog_organization.list_identity_providers()) == 0 - - -@gd_vcr.use_cassette(str(_fixtures_dir / "update_identity_provider.yaml")) -def test_update_identity_provider(test_config): - sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) - - identity_provider_id = "test_identity_provider" - custom_claim_mapping = {"email": "email"} - identifiers = ["goodtesting.com"] - oauth_client_id = "test_client_id" - oauth_client_secret = "test_client_secret" - oauth_issuer_id = "test_issuer_id" - oauth_issuer_location = "https://issuer.goodtesting.com" - - new_identity_provider = CatalogIdentityProvider.init( - identity_provider_id=identity_provider_id, - custom_claim_mapping=custom_claim_mapping, - identifiers=identifiers, - oauth_client_id=oauth_client_id, - oauth_client_secret=oauth_client_secret, - oauth_issuer_id=oauth_issuer_id, - oauth_issuer_location=oauth_issuer_location, - ) - update_identity_provider = CatalogIdentityProvider.init( - identity_provider_id=identity_provider_id, - custom_claim_mapping=custom_claim_mapping, - identifiers=identifiers + ["anotheridentifier.com"], - oauth_client_id=oauth_client_id, - oauth_client_secret=oauth_client_secret, - oauth_issuer_id=oauth_issuer_id, - oauth_issuer_location=oauth_issuer_location, - ) - - try: - sdk.catalog_organization.create_identity_provider(new_identity_provider) - sdk.catalog_organization.update_identity_provider(update_identity_provider) - identity_provider = sdk.catalog_organization.get_identity_provider(identity_provider_id) - assert identity_provider.id == identity_provider_id - assert identity_provider.attributes.custom_claim_mapping == custom_claim_mapping - assert identity_provider.attributes.identifiers == identifiers + ["anotheridentifier.com"] - assert identity_provider.attributes.oauth_client_id == oauth_client_id - assert identity_provider.attributes.oauth_client_secret is None # oauth_client_secret is not returned - assert identity_provider.attributes.oauth_issuer_id == oauth_issuer_id - assert identity_provider.attributes.oauth_issuer_location == oauth_issuer_location - finally: - sdk.catalog_organization.delete_identity_provider(identity_provider_id) - assert len(sdk.catalog_organization.list_identity_providers()) == 0 - - -@gd_vcr.use_cassette(str(_fixtures_dir / "layout_identity_providers.yaml")) -def test_layout_identity_providers(test_config): - sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) - - idps = sdk.catalog_organization.get_declarative_identity_providers() - assert len(idps) == 0 - - try: - identity_provider_id = "test_identity_provider" - custom_claim_mapping = {"email": "email"} - identifiers = ["goodtesting.com"] - oauth_client_id = "test_client_id" - oauth_client_secret = "test_client_secret" - oauth_issuer_id = "test_issuer_id" - oauth_issuer_location = "https://issuer.goodtesting.com" - - identity_providers_e = [ - CatalogDeclarativeIdentityProvider( - id=identity_provider_id, - custom_claim_mapping=custom_claim_mapping, - identifiers=identifiers, - oauth_client_id=oauth_client_id, - oauth_client_secret=oauth_client_secret, - oauth_issuer_id=oauth_issuer_id, - oauth_issuer_location=oauth_issuer_location, - ), - ] - sdk.catalog_organization.put_declarative_identity_providers(identity_providers_e) - identity_providers_o = sdk.catalog_organization.get_declarative_identity_providers() - assert identity_providers_o[0].id == identity_providers_e[0].id - assert identity_providers_o[0].custom_claim_mapping == identity_providers_e[0].custom_claim_mapping - assert identity_providers_o[0].identifiers == identity_providers_e[0].identifiers - assert identity_providers_o[0].oauth_client_id == identity_providers_e[0].oauth_client_id - assert identity_providers_o[0].oauth_client_secret is None - assert identity_providers_o[0].oauth_issuer_id == identity_providers_o[0].oauth_issuer_id - assert identity_providers_o[0].oauth_issuer_location == identity_providers_e[0].oauth_issuer_location - finally: - sdk.catalog_organization.put_declarative_identity_providers([]) - idps = sdk.catalog_organization.get_declarative_identity_providers() - assert len(idps) == 0 +# +# The following tests are commented out as they require the organization to have the FEDERATED_IDENTITY_MANAGEMENT +# entitlement enabled which cannot be done via SDK and must be done by GoodData support. +# +# @gd_vcr.use_cassette(str(_fixtures_dir / "create_identity_provider.yaml")) +# def test_create_identity_provider(test_config): +# sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) +# +# identity_provider_id = "test_identity_provider" +# custom_claim_mapping = {"email": "email"} +# identifiers = ["goodtesting.com"] +# oauth_client_id = "test_client_id" +# oauth_client_secret = "test_client_secret" +# oauth_issuer_location = "https://issuer.goodtesting.com" +# +# new_identity_provider = CatalogIdentityProvider.init( +# identity_provider_id=identity_provider_id, +# custom_claim_mapping=custom_claim_mapping, +# identifiers=identifiers, +# oauth_client_id=oauth_client_id, +# oauth_client_secret=oauth_client_secret, +# oauth_issuer_location=oauth_issuer_location, +# ) +# +# try: +# sdk.catalog_organization.create_identity_provider(new_identity_provider) +# identity_provider = sdk.catalog_organization.get_identity_provider(identity_provider_id) +# assert identity_provider.id == identity_provider_id +# assert identity_provider.attributes.custom_claim_mapping == custom_claim_mapping +# assert identity_provider.attributes.identifiers == identifiers +# assert identity_provider.attributes.oauth_client_id == oauth_client_id +# assert identity_provider.attributes.oauth_client_secret is None # oauth_client_secret is not returned +# assert identity_provider.attributes.oauth_issuer_location == oauth_issuer_location +# finally: +# sdk.catalog_organization.delete_identity_provider(identity_provider_id) +# assert len(sdk.catalog_organization.list_identity_providers()) == 0 +# +# +# @gd_vcr.use_cassette(str(_fixtures_dir / "list_identity_providers.yaml")) +# def test_list_identity_providers(test_config): +# sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) +# +# identity_provider_id = "test_identity_provider" +# custom_claim_mapping = {"email": "email"} +# identifiers = ["goodtesting.com"] +# oauth_client_id = "test_client_id" +# oauth_client_secret = "test_client_secret" +# oauth_issuer_location = "https://issuer.goodtesting.com" +# +# new_identity_provider_1 = CatalogIdentityProvider.init( +# identity_provider_id=identity_provider_id + "_1", +# custom_claim_mapping=custom_claim_mapping, +# identifiers=identifiers, +# oauth_client_id=oauth_client_id + "_1", +# oauth_client_secret=oauth_client_secret + "_1", +# oauth_issuer_location=oauth_issuer_location, +# ) +# new_identity_provider_2 = CatalogIdentityProvider.init( +# identity_provider_id=identity_provider_id + "_2", +# custom_claim_mapping=custom_claim_mapping, +# identifiers=identifiers, +# oauth_client_id=oauth_client_id + "_2", +# oauth_client_secret=oauth_client_secret + "_2", +# oauth_issuer_location=oauth_issuer_location, +# ) +# +# try: +# sdk.catalog_organization.create_identity_provider(new_identity_provider_1) +# sdk.catalog_organization.create_identity_provider(new_identity_provider_2) +# identity_providers = sdk.catalog_organization.list_identity_providers() +# # oauth_client_secret is not returned +# new_identity_provider_1.attributes.oauth_client_secret = None +# new_identity_provider_2.attributes.oauth_client_secret = None +# assert len(identity_providers) == 2 +# assert new_identity_provider_1 in identity_providers +# assert new_identity_provider_2 in identity_providers +# finally: +# sdk.catalog_organization.delete_identity_provider(new_identity_provider_1.id) +# sdk.catalog_organization.delete_identity_provider(new_identity_provider_2.id) +# assert len(sdk.catalog_organization.list_identity_providers()) == 0 +# +# +# @gd_vcr.use_cassette(str(_fixtures_dir / "delete_identity_provider.yaml")) +# def test_delete_identity_provider(test_config): +# sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) +# +# identity_provider_id = "test_identity_provider" +# custom_claim_mapping = {"email": "email"} +# identifiers = ["goodtesting.com"] +# oauth_client_id = "test_client_id" +# oauth_client_secret = "test_client_secret" +# oauth_issuer_location = "https://issuer.goodtesting.com" +# +# new_identity_provider = CatalogIdentityProvider.init( +# identity_provider_id=identity_provider_id, +# custom_claim_mapping=custom_claim_mapping, +# identifiers=identifiers, +# oauth_client_id=oauth_client_id, +# oauth_client_secret=oauth_client_secret, +# oauth_issuer_location=oauth_issuer_location, +# ) +# +# try: +# sdk.catalog_organization.create_identity_provider(new_identity_provider) +# sdk.catalog_organization.delete_identity_provider(identity_provider_id) +# sdk.catalog_organization.get_identity_provider(identity_provider_id) +# except NotFoundException: +# assert len(sdk.catalog_organization.list_identity_providers()) == 0 +# finally: +# assert len(sdk.catalog_organization.list_identity_providers()) == 0 +# +# +# @gd_vcr.use_cassette(str(_fixtures_dir / "update_identity_provider.yaml")) +# def test_update_identity_provider(test_config): +# sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) +# +# identity_provider_id = "test_identity_provider" +# custom_claim_mapping = {"email": "email"} +# identifiers = ["goodtesting.com"] +# oauth_client_id = "test_client_id" +# oauth_client_secret = "test_client_secret" +# oauth_issuer_location = "https://issuer.goodtesting.com" +# +# new_identity_provider = CatalogIdentityProvider.init( +# identity_provider_id=identity_provider_id, +# custom_claim_mapping=custom_claim_mapping, +# identifiers=identifiers, +# oauth_client_id=oauth_client_id, +# oauth_client_secret=oauth_client_secret, +# oauth_issuer_location=oauth_issuer_location, +# ) +# update_identity_provider = CatalogIdentityProvider.init( +# identity_provider_id=identity_provider_id, +# custom_claim_mapping=custom_claim_mapping, +# identifiers=identifiers + ["anotheridentifier.com"], +# oauth_client_id=oauth_client_id, +# oauth_client_secret=oauth_client_secret, +# oauth_issuer_location=oauth_issuer_location, +# ) +# +# try: +# sdk.catalog_organization.create_identity_provider(new_identity_provider) +# sdk.catalog_organization.update_identity_provider(update_identity_provider) +# identity_provider = sdk.catalog_organization.get_identity_provider(identity_provider_id) +# assert identity_provider.id == identity_provider_id +# assert identity_provider.attributes.custom_claim_mapping == custom_claim_mapping +# assert identity_provider.attributes.identifiers == identifiers + ["anotheridentifier.com"] +# assert identity_provider.attributes.oauth_client_id == oauth_client_id +# assert identity_provider.attributes.oauth_client_secret is None # oauth_client_secret is not returned +# assert identity_provider.attributes.oauth_issuer_location == oauth_issuer_location +# finally: +# sdk.catalog_organization.delete_identity_provider(identity_provider_id) +# assert len(sdk.catalog_organization.list_identity_providers()) == 0 +# +# +# @gd_vcr.use_cassette(str(_fixtures_dir / "patch_identity_provider.yaml")) +# def test_patch_identity_provider(test_config): +# sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) +# +# identity_provider_id = "test_identity_provider" +# custom_claim_mapping = {"email": "email"} +# identifiers = ["goodtesting.com"] +# oauth_client_id = "test_client_id" +# oauth_client_secret = "test_client_secret" +# oauth_issuer_location = "https://issuer.goodtesting.com" +# +# new_identity_provider = CatalogIdentityProvider.init( +# identity_provider_id=identity_provider_id, +# custom_claim_mapping=custom_claim_mapping, +# identifiers=identifiers, +# oauth_client_id=oauth_client_id, +# oauth_client_secret=oauth_client_secret, +# oauth_issuer_location=oauth_issuer_location, +# ) +# +# try: +# sdk.catalog_organization.create_identity_provider(new_identity_provider) +# sdk.catalog_organization.patch_identity_provider_attributes( +# identity_provider_id, {"identifiers": identifiers + ["anotheridentifier.com"]} +# ) +# patched_identity_provider = sdk.catalog_organization.get_identity_provider(identity_provider_id) +# assert patched_identity_provider.id == identity_provider_id +# assert patched_identity_provider.attributes.custom_claim_mapping == custom_claim_mapping +# assert patched_identity_provider.attributes.identifiers == identifiers + ["anotheridentifier.com"] +# assert patched_identity_provider.attributes.oauth_client_id == oauth_client_id +# assert patched_identity_provider.attributes.oauth_client_secret is None # oauth_client_secret is not returned +# assert patched_identity_provider.attributes.oauth_issuer_location == oauth_issuer_location +# finally: +# sdk.catalog_organization.delete_identity_provider(identity_provider_id) +# assert len(sdk.catalog_organization.list_identity_providers()) == 0 +# +# +# @gd_vcr.use_cassette(str(_fixtures_dir / "layout_identity_providers.yaml")) +# def test_layout_identity_providers(test_config): +# sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) +# +# idps = sdk.catalog_organization.get_declarative_identity_providers() +# assert len(idps) == 0 +# +# try: +# identity_provider_id = "test_identity_provider" +# custom_claim_mapping = {"email": "email"} +# identifiers = ["goodtesting.com"] +# oauth_client_id = "test_client_id" +# oauth_client_secret = "test_client_secret" +# oauth_issuer_location = "https://issuer.goodtesting.com" +# +# identity_providers_e = [ +# CatalogDeclarativeIdentityProvider( +# id=identity_provider_id, +# custom_claim_mapping=custom_claim_mapping, +# identifiers=identifiers, +# oauth_client_id=oauth_client_id, +# oauth_client_secret=oauth_client_secret, +# oauth_issuer_location=oauth_issuer_location, +# ), +# ] +# sdk.catalog_organization.put_declarative_identity_providers(identity_providers_e) +# identity_providers_o = sdk.catalog_organization.get_declarative_identity_providers() +# assert identity_providers_o[0].id == identity_providers_e[0].id +# assert identity_providers_o[0].custom_claim_mapping == identity_providers_e[0].custom_claim_mapping +# assert identity_providers_o[0].identifiers == identity_providers_e[0].identifiers +# assert identity_providers_o[0].oauth_client_id == identity_providers_e[0].oauth_client_id +# assert identity_providers_o[0].oauth_client_secret is None +# assert identity_providers_o[0].oauth_issuer_location == identity_providers_e[0].oauth_issuer_location +# finally: +# sdk.catalog_organization.put_declarative_identity_providers([]) +# idps = sdk.catalog_organization.get_declarative_identity_providers() +# assert len(idps) == 0 diff --git a/schemas/gooddata-afm-client.json b/schemas/gooddata-afm-client.json index cac954117..d9eaa86e1 100644 --- a/schemas/gooddata-afm-client.json +++ b/schemas/gooddata-afm-client.json @@ -19,7 +19,7 @@ "type": "array" }, "filters": { - "description": "Various filter types to filter execution result.", + "description": "Various filter types to filter the execution result.", "items": { "$ref": "#/components/schemas/FilterDefinition" }, @@ -134,6 +134,7 @@ "type": "object" }, "AfmExecutionResponse": { + "description": "Response to AFM execution request", "properties": { "executionResponse": { "$ref": "#/components/schemas/ExecutionResponse" @@ -145,6 +146,7 @@ "type": "object" }, "AfmIdentifier": { + "description": "Reference to the attribute label to which the filter should be applied.", "oneOf": [ { "$ref": "#/components/schemas/AfmObjectIdentifier" @@ -208,6 +210,7 @@ "type": "object" }, "AfmObjectIdentifierAttribute": { + "description": "Reference to the date attribute to use.", "properties": { "identifier": { "properties": { @@ -236,6 +239,7 @@ "type": "object" }, "AfmObjectIdentifierCore": { + "description": "Reference to the metric, fact or attribute object to use for the metric.", "properties": { "identifier": { "properties": { @@ -267,6 +271,7 @@ "type": "object" }, "AfmObjectIdentifierDataset": { + "description": "Reference to the date dataset to which the filter should be applied.", "properties": { "identifier": { "properties": { @@ -444,7 +449,7 @@ "type": "object" }, "ArithmeticMeasureDefinition": { - "description": "Metric representing arithmetics between metrics.", + "description": "Metric representing arithmetics between other metrics.", "properties": { "arithmeticMeasure": { "properties": { @@ -526,13 +531,14 @@ "type": "object" }, "AttributeFormat": { + "description": "Attribute format describes formatting information to effectively format attribute values when needed.", "properties": { "locale": { - "description": "Format locale", + "description": "Format locale code like 'en-US', 'cs-CZ', etc.", "type": "string" }, "pattern": { - "description": "Format pattern", + "description": "ICU formatting pattern like 'y', 'dd.MM.y', etc.", "type": "string" } }, @@ -542,7 +548,7 @@ ], "type": "object" }, - "AttributeHeaderOut": { + "AttributeHeader": { "properties": { "attributeHeader": { "properties": { @@ -550,12 +556,14 @@ "$ref": "#/components/schemas/RestApiIdentifier" }, "attributeName": { + "description": "Attribute name.", "type": "string" }, "format": { "$ref": "#/components/schemas/AttributeFormat" }, "granularity": { + "description": "Date granularity of the attribute, only filled for date attributes.", "enum": [ "MINUTE", "HOUR", @@ -579,9 +587,11 @@ "$ref": "#/components/schemas/RestApiIdentifier" }, "labelName": { + "description": "Label name.", "type": "string" }, "localIdentifier": { + "description": "Local identifier of the attribute this header relates to.", "pattern": "^[.a-zA-Z0-9_-]+$", "type": "string" }, @@ -589,6 +599,7 @@ "$ref": "#/components/schemas/RestApiIdentifier" }, "valueType": { + "description": "Attribute value type.", "enum": [ "TEXT", "HYPERLINK", @@ -622,12 +633,14 @@ "$ref": "#/components/schemas/AfmObjectIdentifierLabel" }, "localIdentifier": { + "description": "Local identifier of the attribute. This can be used to reference the attribute in other parts of the execution definition.", + "example": "attribute_1", "pattern": "^[.a-zA-Z0-9_-]+$", "type": "string" }, "showAllValues": { "default": false, - "description": "Specifies that the label should be outer-joined.", + "description": "Indicates whether to show all values of given attribute even if the data bound to those values is not available.", "type": "boolean" } }, @@ -982,6 +995,13 @@ "applyOnResult": { "type": "boolean" }, + "dimensionality": { + "description": "References to the attributes to be used when filtering.", + "items": { + "$ref": "#/components/schemas/AfmIdentifier" + }, + "type": "array" + }, "localIdentifier": { "type": "string" }, @@ -1001,6 +1021,7 @@ "type": "string" }, "treatNullValuesAs": { + "description": "A value that will be substituted for null values in the metric for the comparisons.", "example": 0, "type": "number" }, @@ -1064,6 +1085,13 @@ }, "type": "array" }, + "suggestions": { + "description": "Suggestions for next steps", + "items": { + "$ref": "#/components/schemas/Suggestion" + }, + "type": "array" + }, "title": { "description": "Proposed title of the new visualization", "example": "Revenue by Country", @@ -1088,6 +1116,7 @@ "filters", "id", "metrics", + "suggestions", "title", "visualizationType" ], @@ -1143,6 +1172,7 @@ "type": "object" }, "DataColumnLocators": { + "description": "Data column locators for the values.", "properties": { "properties": { "additionalProperties": { @@ -1535,8 +1565,10 @@ "type": "object" }, "ExecutionLinks": { + "description": "Links to the execution result.", "properties": { "executionResult": { + "description": "Link to the result data.", "type": "string" } }, @@ -1546,8 +1578,10 @@ "type": "object" }, "ExecutionResponse": { + "description": "Response to AFM execution request body", "properties": { "dimensions": { + "description": "Dimensions of the result", "items": { "$ref": "#/components/schemas/ResultDimension" }, @@ -1909,6 +1943,7 @@ "type": "boolean" }, "filter": { + "description": "MAQL query representing the filter.", "type": "string" }, "localIdentifier": { @@ -1932,6 +1967,7 @@ "inline": { "properties": { "maql": { + "description": "MAQL query defining the metric.", "type": "string" } }, @@ -2089,25 +2125,35 @@ "type": "object" }, "MeasureGroupHeaders": { + "description": "Measure group headers", "properties": { + "first": { + "$ref": "#/components/schemas/MeasureHeader" + }, + "last": { + "$ref": "#/components/schemas/MeasureHeader" + }, "measureGroupHeaders": { "items": { - "$ref": "#/components/schemas/MeasureHeaderOut" + "$ref": "#/components/schemas/MeasureHeader" }, "type": "array" } }, "type": "object" }, - "MeasureHeaderOut": { + "MeasureHeader": { "properties": { "format": { + "description": "Format to be used to format the measure data.", "type": "string" }, "localIdentifier": { + "description": "Local identifier of the measure this header relates to.", "type": "string" }, "name": { + "description": "Name of the measure.", "type": "string" } }, @@ -2117,11 +2163,13 @@ "type": "object" }, "MeasureItem": { + "description": "Metric is a quantity that is calculated from the data.", "properties": { "definition": { "$ref": "#/components/schemas/MeasureDefinition" }, "localIdentifier": { + "description": "Local identifier of the metric. This can be used to reference the metric in other parts of the execution definition.", "example": "metric_1", "pattern": "^[.a-zA-Z0-9_-]+$", "type": "string" @@ -2267,11 +2315,14 @@ "type": "object" }, "PopDataset": { + "description": "Combination of the date data set to use and how many periods ago to calculate the previous period for.", "properties": { "dataset": { "$ref": "#/components/schemas/AfmObjectIdentifierDataset" }, "periodsAgo": { + "description": "Number of periods ago to calculate the previous period for.", + "example": 1, "format": "int32", "type": "integer" } @@ -2288,6 +2339,7 @@ "previousPeriodMeasure": { "properties": { "dateDatasets": { + "description": "Specification of which date data sets to use for determining the period to calculate the previous period for.", "items": { "$ref": "#/components/schemas/PopDataset" }, @@ -2310,11 +2362,14 @@ "type": "object" }, "PopDate": { + "description": "Combination of the date attribute to use and how many periods ago to calculate the PoP for.", "properties": { "attribute": { "$ref": "#/components/schemas/AfmObjectIdentifierAttribute" }, "periodsAgo": { + "description": "Number of periods ago to calculate the previous period for.", + "example": 1, "format": "int32", "type": "integer" } @@ -2331,6 +2386,7 @@ "overPeriodMeasure": { "properties": { "dateAttributes": { + "description": "Attributes to use for determining the period to calculate the PoP for.", "items": { "$ref": "#/components/schemas/PopDate" }, @@ -2401,6 +2457,13 @@ "applyOnResult": { "type": "boolean" }, + "dimensionality": { + "description": "References to the attributes to be used when filtering.", + "items": { + "$ref": "#/components/schemas/AfmIdentifier" + }, + "type": "array" + }, "from": { "example": 100, "type": "number" @@ -2424,6 +2487,7 @@ "type": "number" }, "treatNullValuesAs": { + "description": "A value that will be substituted for null values in the metric for the comparisons.", "example": 0, "type": "number" } @@ -2450,16 +2514,25 @@ "applyOnResult": { "type": "boolean" }, + "dimensionality": { + "description": "References to the attributes to be used when filtering.", + "items": { + "$ref": "#/components/schemas/AfmIdentifier" + }, + "type": "array" + }, "localIdentifier": { "type": "string" }, "measures": { + "description": "References to the metrics to be used when filtering.", "items": { "$ref": "#/components/schemas/AfmIdentifier" }, "type": "array" }, "operator": { + "description": "The type of ranking to use, TOP or BOTTOM.", "enum": [ "TOP", "BOTTOM" @@ -2467,6 +2540,7 @@ "type": "string" }, "value": { + "description": "Number of top/bottom values to filter.", "example": 5, "format": "int32", "type": "integer" @@ -2593,6 +2667,7 @@ "type": "object" }, "ResultDimension": { + "description": "Single result dimension", "properties": { "headers": { "items": { @@ -2601,6 +2676,7 @@ "type": "array" }, "localIdentifier": { + "description": "Local identifier of the dimension.", "type": "string" } }, @@ -2611,12 +2687,13 @@ "type": "object" }, "ResultDimensionHeader": { + "description": "One of the headers in a result dimension.", "oneOf": [ { "$ref": "#/components/schemas/MeasureGroupHeaders" }, { - "$ref": "#/components/schemas/AttributeHeaderOut" + "$ref": "#/components/schemas/AttributeHeader" } ], "type": "object" @@ -2642,20 +2719,8 @@ ], "type": "object" }, - "RouteRequest": { - "properties": { - "question": { - "description": "Route to supported use cases based on this input query.", - "maxLength": 1000, - "type": "string" - } - }, - "required": [ - "question" - ], - "type": "object" - }, "RouteResult": { + "description": "Question -> Use Case routing. May contain final answer is a special use case is not required.", "properties": { "reasoning": { "description": "Explanation why LLM picked this use case.", @@ -2879,6 +2944,7 @@ "type": "object" }, "SimpleMeasureDefinition": { + "description": "Metric defined by referencing a MAQL metric or an LDM fact object with aggregation.", "properties": { "measure": { "properties": { @@ -2899,7 +2965,7 @@ }, "computeRatio": { "default": false, - "description": "If true compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).", + "description": "If true, compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).", "example": true, "type": "boolean" }, @@ -2970,7 +3036,7 @@ }, "sortType": { "default": "DEFAULT", - "description": "Mechanism by which this attribute should be sorted. Available options are:\n- DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) \n- LABEL: sorting by this label values \n- ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) \n- AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions.", + "description": "Mechanism by which this attribute should be sorted. Available options are:\n- DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) \n- LABEL: sorting by this label values \n- ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) \n- ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label)- AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions.", "enum": [ "DEFAULT", "LABEL", @@ -3008,6 +3074,7 @@ "type": "string" }, "totalIdentifier": { + "description": "Local identifier of the total to sort by.", "type": "string" } }, @@ -3050,6 +3117,24 @@ ], "type": "object" }, + "Suggestion": { + "description": "Suggestions for next steps", + "properties": { + "label": { + "description": "Suggestion button label", + "type": "string" + }, + "query": { + "description": "Suggestion query", + "type": "string" + } + }, + "required": [ + "label", + "query" + ], + "type": "object" + }, "Total": { "description": "Definition of a total. There are two types of totals: grand totals and subtotals. Grand total data will be returned in a separate section of the result structure while subtotals are fully integrated into the main result data. The mechanism for this distinction is automatic and it's described in `TotalDimension`", "properties": { @@ -3317,51 +3402,6 @@ ] } }, - "/api/v1/actions/workspaces/{workspaceId}/ai/route": { - "post": { - "description": "(BETA) Uses similarity (e.g. cosine distance) to find most similar use cases.", - "operationId": "aiRoute", - "parameters": [ - { - "description": "Workspace identifier", - "in": "path", - "name": "workspaceId", - "required": true, - "schema": { - "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RouteRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RouteResult" - } - } - }, - "description": "OK" - } - }, - "summary": "(BETA) Route to supported use cases based on this input query.", - "tags": [ - "Smart Functions", - "actions" - ] - } - }, "/api/v1/actions/workspaces/{workspaceId}/ai/search": { "post": { "description": "(BETA) Uses similarity (e.g. cosine distance) search to find top X most similar metadata objects.", diff --git a/schemas/gooddata-api-client.json b/schemas/gooddata-api-client.json index e55ef1658..c867d8224 100644 --- a/schemas/gooddata-api-client.json +++ b/schemas/gooddata-api-client.json @@ -64,7 +64,7 @@ "type": "array" }, "filters": { - "description": "Various filter types to filter execution result.", + "description": "Various filter types to filter the execution result.", "items": { "$ref": "#/components/schemas/FilterDefinition" }, @@ -179,6 +179,7 @@ "type": "object" }, "AfmExecutionResponse": { + "description": "Response to AFM execution request", "properties": { "executionResponse": { "$ref": "#/components/schemas/ExecutionResponse" @@ -190,6 +191,7 @@ "type": "object" }, "AfmIdentifier": { + "description": "Reference to the attribute label to which the filter should be applied.", "oneOf": [ { "$ref": "#/components/schemas/AfmObjectIdentifier" @@ -253,6 +255,7 @@ "type": "object" }, "AfmObjectIdentifierAttribute": { + "description": "Reference to the date attribute to use.", "properties": { "identifier": { "properties": { @@ -281,6 +284,7 @@ "type": "object" }, "AfmObjectIdentifierCore": { + "description": "Reference to the metric, fact or attribute object to use for the metric.", "properties": { "identifier": { "properties": { @@ -312,6 +316,7 @@ "type": "object" }, "AfmObjectIdentifierDataset": { + "description": "Reference to the date dataset to which the filter should be applied.", "properties": { "identifier": { "properties": { @@ -512,6 +517,93 @@ ], "type": "object" }, + "AlertDescription": { + "properties": { + "attribute": { + "type": "string" + }, + "condition": { + "type": "string" + }, + "currentValues": { + "items": { + "$ref": "#/components/schemas/AlertEvaluationRow" + }, + "type": "array" + }, + "errorMessage": { + "type": "string" + }, + "filterCount": { + "format": "int32", + "type": "integer" + }, + "formattedThreshold": { + "type": "string" + }, + "lowerThreshold": { + "format": "double", + "type": "number" + }, + "metric": { + "type": "string" + }, + "remainingAlertEvaluationCount": { + "format": "int32", + "type": "integer" + }, + "status": { + "enum": [ + "SUCCESS", + "ERROR", + "INTERNAL_ERROR", + "TIMEOUT" + ], + "type": "string" + }, + "threshold": { + "format": "double", + "type": "number" + }, + "totalValueCount": { + "format": "int32", + "type": "integer" + }, + "traceId": { + "type": "string" + }, + "triggeredCount": { + "format": "int32", + "type": "integer" + }, + "upperThreshold": { + "format": "double", + "type": "number" + } + }, + "required": [ + "condition", + "metric" + ], + "type": "object" + }, + "AlertEvaluationRow": { + "properties": { + "computedMetric": { + "$ref": "#/components/schemas/MetricRecord" + }, + "labelValue": { + "type": "string" + }, + "primaryMetric": { + "$ref": "#/components/schemas/MetricRecord" + }, + "secondaryMetric": { + "$ref": "#/components/schemas/MetricRecord" + } + }, + "type": "object" + }, "AnomalyDetectionRequest": { "properties": { "sensitivity": { @@ -625,7 +717,7 @@ "type": "object" }, "ArithmeticMeasureDefinition": { - "description": "Metric representing arithmetics between metrics.", + "description": "Metric representing arithmetics between other metrics.", "properties": { "arithmeticMeasure": { "properties": { @@ -742,13 +834,14 @@ "type": "object" }, "AttributeFormat": { + "description": "Attribute format describes formatting information to effectively format attribute values when needed.", "properties": { "locale": { - "description": "Format locale", + "description": "Format locale code like 'en-US', 'cs-CZ', etc.", "type": "string" }, "pattern": { - "description": "Format pattern", + "description": "ICU formatting pattern like 'y', 'dd.MM.y', etc.", "type": "string" } }, @@ -758,7 +851,7 @@ ], "type": "object" }, - "AttributeHeaderOut": { + "AttributeHeader": { "properties": { "attributeHeader": { "properties": { @@ -766,12 +859,14 @@ "$ref": "#/components/schemas/RestApiIdentifier" }, "attributeName": { + "description": "Attribute name.", "type": "string" }, "format": { "$ref": "#/components/schemas/AttributeFormat" }, "granularity": { + "description": "Date granularity of the attribute, only filled for date attributes.", "enum": [ "MINUTE", "HOUR", @@ -795,9 +890,11 @@ "$ref": "#/components/schemas/RestApiIdentifier" }, "labelName": { + "description": "Label name.", "type": "string" }, "localIdentifier": { + "description": "Local identifier of the attribute this header relates to.", "pattern": "^[.a-zA-Z0-9_-]+$", "type": "string" }, @@ -805,6 +902,7 @@ "$ref": "#/components/schemas/RestApiIdentifier" }, "valueType": { + "description": "Attribute value type.", "enum": [ "TEXT", "HYPERLINK", @@ -838,12 +936,14 @@ "$ref": "#/components/schemas/AfmObjectIdentifierLabel" }, "localIdentifier": { + "description": "Local identifier of the attribute. This can be used to reference the attribute in other parts of the execution definition.", + "example": "attribute_1", "pattern": "^[.a-zA-Z0-9_-]+$", "type": "string" }, "showAllValues": { "default": false, - "description": "Specifies that the label should be outer-joined.", + "description": "Indicates whether to show all values of given attribute even if the data bound to those values is not available.", "type": "boolean" } }, @@ -959,6 +1059,38 @@ ], "type": "object" }, + "AutomationExternalRecipient": { + "properties": { + "email": { + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "AutomationNotification": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationContent" + }, + { + "properties": { + "content": { + "$ref": "#/components/schemas/WebhookMessage" + } + }, + "type": "object" + } + ], + "required": [ + "content" + ], + "type": "object" + }, "AutomationSchedule": { "properties": { "cron": { @@ -1509,6 +1641,13 @@ "applyOnResult": { "type": "boolean" }, + "dimensionality": { + "description": "References to the attributes to be used when filtering.", + "items": { + "$ref": "#/components/schemas/AfmIdentifier" + }, + "type": "array" + }, "localIdentifier": { "type": "string" }, @@ -1528,6 +1667,7 @@ "type": "string" }, "treatNullValuesAs": { + "description": "A value that will be substituted for null values in the metric for the comparisons.", "example": 0, "type": "number" }, @@ -1602,6 +1742,13 @@ }, "type": "array" }, + "suggestions": { + "description": "Suggestions for next steps", + "items": { + "$ref": "#/components/schemas/Suggestion" + }, + "type": "array" + }, "title": { "description": "Proposed title of the new visualization", "example": "Revenue by Country", @@ -1626,6 +1773,7 @@ "filters", "id", "metrics", + "suggestions", "title", "visualizationType" ], @@ -1791,6 +1939,7 @@ "type": "object" }, "DataColumnLocators": { + "description": "Data column locators for the values.", "properties": { "properties": { "additionalProperties": { @@ -2516,6 +2665,14 @@ "type": "array", "uniqueItems": true }, + "externalRecipients": { + "description": "External recipients of the automation action results.", + "items": { + "$ref": "#/components/schemas/AutomationExternalRecipient" + }, + "type": "array", + "uniqueItems": true + }, "id": { "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" @@ -3438,12 +3595,6 @@ "maxLength": 255, "type": "string" }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -3456,7 +3607,8 @@ } }, "required": [ - "id" + "id", + "identifiers" ], "type": "object" }, @@ -3668,10 +3820,11 @@ "properties": { "allowedRecipients": { "default": "INTERNAL", - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\n", + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", "enum": [ "CREATOR", - "INTERNAL" + "INTERNAL", + "EXTERNAL" ], "type": "string" }, @@ -3679,6 +3832,16 @@ "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", "type": "string" }, + "dashboardLinkVisibility": { + "default": "INTERNAL_ONLY", + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, "description": { "description": "Description of a notification channel.", "example": "This is a channel", @@ -4167,7 +4330,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "example": "TIMEZONE", "type": "string" @@ -5062,6 +5227,26 @@ } ], "description": "Default SMTP destination for notifications.", + "properties": { + "fromEmail": { + "default": "no-reply@gooddata.com", + "description": "E-mail address to send notifications from. Currently this does not have any effect. E-mail 'no-reply@gooddata.com' is used instead.", + "format": "email", + "type": "string" + }, + "fromEmailName": { + "default": "GoodData", + "description": "An optional e-mail name to send notifications from. Currently this does not have any effect. E-mail from name 'GoodData' is used instead.", + "type": "string" + }, + "type": { + "description": "The destination type.", + "enum": [ + "DEFAULT_SMTP" + ], + "type": "string" + } + }, "required": [ "type" ], @@ -5513,8 +5698,10 @@ "type": "object" }, "ExecutionLinks": { + "description": "Links to the execution result.", "properties": { "executionResult": { + "description": "Link to the result data.", "type": "string" } }, @@ -5524,8 +5711,10 @@ "type": "object" }, "ExecutionResponse": { + "description": "Response to AFM execution request body", "properties": { "dimensions": { + "description": "Dimensions of the result", "items": { "$ref": "#/components/schemas/ResultDimension" }, @@ -5732,6 +5921,40 @@ ], "type": "object" }, + "ExportResult": { + "properties": { + "errorMessage": { + "type": "string" + }, + "exportId": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "fileUri": { + "type": "string" + }, + "status": { + "enum": [ + "SUCCESS", + "ERROR", + "INTERNAL_ERROR", + "TIMEOUT" + ], + "type": "string" + }, + "traceId": { + "type": "string" + } + }, + "required": [ + "exportId", + "fileName", + "status" + ], + "type": "object" + }, "File": { "properties": { "any": { @@ -6332,6 +6555,15 @@ } ], "description": "In-platform destination for notifications.", + "properties": { + "type": { + "description": "The destination type.", + "enum": [ + "IN_PLATFORM" + ], + "type": "string" + } + }, "required": [ "type" ], @@ -6346,6 +6578,7 @@ "type": "boolean" }, "filter": { + "description": "MAQL query representing the filter.", "type": "string" }, "localIdentifier": { @@ -6369,6 +6602,7 @@ "inline": { "properties": { "maql": { + "description": "MAQL query defining the metric.", "type": "string" } }, @@ -7785,6 +8019,23 @@ "description": "Additional details to be included in the automated message.", "maxLength": 10000 }, + "externalRecipients": { + "description": "External recipients of the automation action results.", + "items": { + "properties": { + "email": { + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "type": "array" + }, "metadata": { "description": "Additional information for the automation.", "maxLength": 15000, @@ -8015,6 +8266,23 @@ "description": "Additional details to be included in the automated message.", "maxLength": 10000 }, + "externalRecipients": { + "description": "External recipients of the automation action results.", + "items": { + "properties": { + "email": { + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "type": "array" + }, "metadata": { "description": "Additional information for the automation.", "maxLength": 15000, @@ -8349,6 +8617,23 @@ "description": "Additional details to be included in the automated message.", "maxLength": 10000 }, + "externalRecipients": { + "description": "External recipients of the automation action results.", + "items": { + "properties": { + "email": { + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "type": "array" + }, "metadata": { "description": "Additional information for the automation.", "maxLength": 15000, @@ -12480,12 +12765,6 @@ "maxLength": 255, "type": "string" }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -12497,6 +12776,9 @@ "type": "string" } }, + "required": [ + "identifiers" + ], "type": "object" }, "id": { @@ -12515,6 +12797,7 @@ } }, "required": [ + "attributes", "id", "type" ], @@ -12559,18 +12842,15 @@ "maxLength": 255, "type": "string" }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, "type": "string" } }, + "required": [ + "identifiers" + ], "type": "object" }, "id": { @@ -12589,6 +12869,7 @@ } }, "required": [ + "attributes", "id", "type" ], @@ -12678,12 +12959,6 @@ "maxLength": 255, "type": "string" }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -12713,6 +12988,7 @@ } }, "required": [ + "attributes", "id", "type" ], @@ -13171,7 +13447,6 @@ "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, - "nullable": true, "type": "string" }, "llmOrganization": { @@ -13185,7 +13460,6 @@ "enum": [ "OPENAI" ], - "example": "OPENAI", "type": "string" }, "title": { @@ -13197,10 +13471,21 @@ "description": "The token to use to connect to the LLM provider.", "maxLength": 10000, "type": "string" + }, + "workspaceIds": { + "description": "List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.", + "example": [ + "demo", + "trial" + ], + "items": { + "maxLength": 255, + "type": "string" + }, + "type": "array" } }, "required": [ - "provider", "title", "token" ], @@ -13259,7 +13544,6 @@ "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, - "nullable": true, "type": "string" }, "llmOrganization": { @@ -13273,17 +13557,27 @@ "enum": [ "OPENAI" ], - "example": "OPENAI", "type": "string" }, "title": { "description": "User-facing title of the LLM Provider.", "maxLength": 255, "type": "string" + }, + "workspaceIds": { + "description": "List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.", + "example": [ + "demo", + "trial" + ], + "items": { + "maxLength": 255, + "type": "string" + }, + "type": "array" } }, "required": [ - "provider", "title" ], "type": "object" @@ -13381,7 +13675,6 @@ "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, - "nullable": true, "type": "string" }, "llmOrganization": { @@ -13395,7 +13688,6 @@ "enum": [ "OPENAI" ], - "example": "OPENAI", "type": "string" }, "title": { @@ -13407,6 +13699,18 @@ "description": "The token to use to connect to the LLM provider.", "maxLength": 10000, "type": "string" + }, + "workspaceIds": { + "description": "List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.", + "example": [ + "demo", + "trial" + ], + "items": { + "maxLength": 255, + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -13974,10 +14278,11 @@ "attributes": { "properties": { "allowedRecipients": { - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\n", + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", "enum": [ "CREATOR", - "INTERNAL" + "INTERNAL", + "EXTERNAL" ], "type": "string" }, @@ -13985,6 +14290,15 @@ "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", "type": "string" }, + "dashboardLinkVisibility": { + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, "description": { "maxLength": 10000, "nullable": true, @@ -14007,16 +14321,6 @@ } ] }, - "destinationType": { - "enum": [ - "WEBHOOK", - "SMTP", - "DEFAULT_SMTP", - "IN_PLATFORM" - ], - "nullable": true, - "type": "string" - }, "inPlatformNotification": { "description": "In-platform notifications configuration. No effect if the destination type is IN_PLATFORM.\nDISABLED - in-platform notifications are not sent\nENABLED - in-platform notifications are sent in addition to the regular notifications\n", "enum": [ @@ -14090,10 +14394,11 @@ "attributes": { "properties": { "allowedRecipients": { - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\n", + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", "enum": [ "CREATOR", - "INTERNAL" + "INTERNAL", + "EXTERNAL" ], "type": "string" }, @@ -14101,6 +14406,15 @@ "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", "type": "string" }, + "dashboardLinkVisibility": { + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, "description": { "maxLength": 10000, "nullable": true, @@ -14227,10 +14541,11 @@ "attributes": { "properties": { "allowedRecipients": { - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\n", + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", "enum": [ "CREATOR", - "INTERNAL" + "INTERNAL", + "EXTERNAL" ], "type": "string" }, @@ -14238,6 +14553,15 @@ "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", "type": "string" }, + "dashboardLinkVisibility": { + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, "description": { "maxLength": 10000, "nullable": true, @@ -14260,16 +14584,6 @@ } ] }, - "destinationType": { - "enum": [ - "WEBHOOK", - "SMTP", - "DEFAULT_SMTP", - "IN_PLATFORM" - ], - "nullable": true, - "type": "string" - }, "inPlatformNotification": { "description": "In-platform notifications configuration. No effect if the destination type is IN_PLATFORM.\nDISABLED - in-platform notifications are not sent\nENABLED - in-platform notifications are sent in addition to the regular notifications\n", "enum": [ @@ -14324,10 +14638,11 @@ "attributes": { "properties": { "allowedRecipients": { - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\n", + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", "enum": [ "CREATOR", - "INTERNAL" + "INTERNAL", + "EXTERNAL" ], "type": "string" }, @@ -14335,6 +14650,15 @@ "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", "type": "string" }, + "dashboardLinkVisibility": { + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, "description": { "maxLength": 10000, "nullable": true, @@ -14357,16 +14681,6 @@ } ] }, - "destinationType": { - "enum": [ - "WEBHOOK", - "SMTP", - "DEFAULT_SMTP", - "IN_PLATFORM" - ], - "nullable": true, - "type": "string" - }, "inPlatformNotification": { "description": "In-platform notifications configuration. No effect if the destination type is IN_PLATFORM.\nDISABLED - in-platform notifications are not sent\nENABLED - in-platform notifications are sent in addition to the regular notifications\n", "enum": [ @@ -14848,7 +15162,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -14914,7 +15230,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -15020,7 +15338,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -16492,7 +16812,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -16558,7 +16880,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -18301,7 +18625,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -18367,7 +18693,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -18499,7 +18827,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -18565,7 +18895,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -18844,25 +19176,35 @@ "type": "object" }, "MeasureGroupHeaders": { + "description": "Measure group headers", "properties": { + "first": { + "$ref": "#/components/schemas/MeasureHeader" + }, + "last": { + "$ref": "#/components/schemas/MeasureHeader" + }, "measureGroupHeaders": { "items": { - "$ref": "#/components/schemas/MeasureHeaderOut" + "$ref": "#/components/schemas/MeasureHeader" }, "type": "array" } }, "type": "object" }, - "MeasureHeaderOut": { + "MeasureHeader": { "properties": { "format": { + "description": "Format to be used to format the measure data.", "type": "string" }, "localIdentifier": { + "description": "Local identifier of the measure this header relates to.", "type": "string" }, "name": { + "description": "Name of the measure.", "type": "string" } }, @@ -18872,11 +19214,13 @@ "type": "object" }, "MeasureItem": { + "description": "Metric is a quantity that is calculated from the data.", "properties": { "definition": { "$ref": "#/components/schemas/MeasureDefinition" }, "localIdentifier": { + "description": "Local identifier of the metric. This can be used to reference the metric in other parts of the execution definition.", "example": "metric_1", "pattern": "^[.a-zA-Z0-9_-]+$", "type": "string" @@ -18957,6 +19301,21 @@ ], "type": "object" }, + "MetricRecord": { + "properties": { + "formattedValue": { + "type": "string" + }, + "value": { + "format": "double", + "type": "number" + } + }, + "required": [ + "value" + ], + "type": "object" + }, "NegativeAttributeFilter": { "description": "Filter able to limit element values by label and related selected negated elements.", "properties": { @@ -19052,6 +19411,43 @@ "namespace": "urn:oasis:names:tc:xliff:document:2.0" } }, + "Notification": { + "properties": { + "automationId": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "data": { + "oneOf": [ + { + "$ref": "#/components/schemas/AutomationNotification" + }, + { + "$ref": "#/components/schemas/TestNotification" + } + ] + }, + "id": { + "type": "string" + }, + "isRead": { + "type": "boolean" + }, + "workspaceId": { + "type": "string" + } + }, + "required": [ + "createdAt", + "data", + "id", + "isRead" + ], + "type": "object" + }, "NotificationChannelDestination": { "oneOf": [ { @@ -19077,6 +19473,67 @@ ], "type": "object" }, + "NotificationContent": { + "discriminator": { + "mapping": { + "AUTOMATION": "#/components/schemas/AutomationNotification", + "TEST": "#/components/schemas/TestNotification" + }, + "propertyName": "type" + }, + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "Notifications": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/Notification" + }, + "type": "array" + }, + "meta": { + "$ref": "#/components/schemas/NotificationsMeta" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" + }, + "NotificationsMeta": { + "properties": { + "total": { + "$ref": "#/components/schemas/NotificationsMetaTotal" + } + }, + "type": "object" + }, + "NotificationsMetaTotal": { + "properties": { + "all": { + "format": "int64", + "type": "integer" + }, + "unread": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "all", + "unread" + ], + "type": "object" + }, "ObjectLinks": { "properties": { "self": { @@ -19387,11 +19844,14 @@ "type": "object" }, "PopDataset": { + "description": "Combination of the date data set to use and how many periods ago to calculate the previous period for.", "properties": { "dataset": { "$ref": "#/components/schemas/AfmObjectIdentifierDataset" }, "periodsAgo": { + "description": "Number of periods ago to calculate the previous period for.", + "example": 1, "format": "int32", "type": "integer" } @@ -19408,6 +19868,7 @@ "previousPeriodMeasure": { "properties": { "dateDatasets": { + "description": "Specification of which date data sets to use for determining the period to calculate the previous period for.", "items": { "$ref": "#/components/schemas/PopDataset" }, @@ -19430,11 +19891,14 @@ "type": "object" }, "PopDate": { + "description": "Combination of the date attribute to use and how many periods ago to calculate the PoP for.", "properties": { "attribute": { "$ref": "#/components/schemas/AfmObjectIdentifierAttribute" }, "periodsAgo": { + "description": "Number of periods ago to calculate the previous period for.", + "example": 1, "format": "int32", "type": "integer" } @@ -19451,6 +19915,7 @@ "overPeriodMeasure": { "properties": { "dateAttributes": { + "description": "Attributes to use for determining the period to calculate the PoP for.", "items": { "$ref": "#/components/schemas/PopDate" }, @@ -19548,6 +20013,13 @@ "applyOnResult": { "type": "boolean" }, + "dimensionality": { + "description": "References to the attributes to be used when filtering.", + "items": { + "$ref": "#/components/schemas/AfmIdentifier" + }, + "type": "array" + }, "from": { "example": 100, "type": "number" @@ -19571,6 +20043,7 @@ "type": "number" }, "treatNullValuesAs": { + "description": "A value that will be substituted for null values in the metric for the comparisons.", "example": 0, "type": "number" } @@ -19608,16 +20081,25 @@ "applyOnResult": { "type": "boolean" }, + "dimensionality": { + "description": "References to the attributes to be used when filtering.", + "items": { + "$ref": "#/components/schemas/AfmIdentifier" + }, + "type": "array" + }, "localIdentifier": { "type": "string" }, "measures": { + "description": "References to the metrics to be used when filtering.", "items": { "$ref": "#/components/schemas/AfmIdentifier" }, "type": "array" }, "operator": { + "description": "The type of ranking to use, TOP or BOTTOM.", "enum": [ "TOP", "BOTTOM" @@ -19625,6 +20107,7 @@ "type": "string" }, "value": { + "description": "Number of top/bottom values to filter.", "example": 5, "format": "int32", "type": "integer" @@ -19841,7 +20324,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "example": "TIMEZONE", "type": "string" @@ -19897,6 +20382,7 @@ "type": "object" }, "ResultDimension": { + "description": "Single result dimension", "properties": { "headers": { "items": { @@ -19905,6 +20391,7 @@ "type": "array" }, "localIdentifier": { + "description": "Local identifier of the dimension.", "type": "string" } }, @@ -19915,12 +20402,13 @@ "type": "object" }, "ResultDimensionHeader": { + "description": "One of the headers in a result dimension.", "oneOf": [ { "$ref": "#/components/schemas/MeasureGroupHeaders" }, { - "$ref": "#/components/schemas/AttributeHeaderOut" + "$ref": "#/components/schemas/AttributeHeader" } ], "type": "object" @@ -19946,20 +20434,8 @@ ], "type": "object" }, - "RouteRequest": { - "properties": { - "question": { - "description": "Route to supported use cases based on this input query.", - "maxLength": 1000, - "type": "string" - } - }, - "required": [ - "question" - ], - "type": "object" - }, "RouteResult": { + "description": "Question -> Use Case routing. May contain final answer is a special use case is not required.", "properties": { "reasoning": { "description": "Explanation why LLM picked this use case.", @@ -20414,6 +20890,7 @@ "type": "object" }, "SimpleMeasureDefinition": { + "description": "Metric defined by referencing a MAQL metric or an LDM fact object with aggregation.", "properties": { "measure": { "properties": { @@ -20434,7 +20911,7 @@ }, "computeRatio": { "default": false, - "description": "If true compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).", + "description": "If true, compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).", "example": true, "type": "boolean" }, @@ -20543,6 +21020,50 @@ } ], "description": "Custom SMTP destination for notifications. The properties host, port, username, and password are required on create and update", + "properties": { + "fromEmail": { + "default": "no-reply@gooddata.com", + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + }, + "fromEmailName": { + "default": "GoodData", + "description": "An optional e-mail name to send notifications from.", + "type": "string" + }, + "host": { + "description": "The SMTP server address.", + "type": "string" + }, + "password": { + "description": "The SMTP server password.", + "type": "string", + "writeOnly": true + }, + "port": { + "description": "The SMTP server port.", + "enum": [ + 25, + 465, + 587, + 2525 + ], + "format": "int32", + "type": "integer" + }, + "type": { + "description": "The destination type.", + "enum": [ + "SMTP" + ], + "type": "string" + }, + "username": { + "description": "The SMTP server username.", + "type": "string" + } + }, "required": [ "type" ], @@ -20582,7 +21103,7 @@ }, "sortType": { "default": "DEFAULT", - "description": "Mechanism by which this attribute should be sorted. Available options are:\n- DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) \n- LABEL: sorting by this label values \n- ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) \n- AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions.", + "description": "Mechanism by which this attribute should be sorted. Available options are:\n- DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) \n- LABEL: sorting by this label values \n- ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) \n- ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label)- AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions.", "enum": [ "DEFAULT", "LABEL", @@ -20620,6 +21141,7 @@ "type": "string" }, "totalIdentifier": { + "description": "Local identifier of the total to sort by.", "type": "string" } }, @@ -20710,6 +21232,24 @@ ], "type": "object" }, + "Suggestion": { + "description": "Suggestions for next steps", + "properties": { + "label": { + "description": "Suggestion button label", + "type": "string" + }, + "query": { + "description": "Suggestion query", + "type": "string" + } + }, + "required": [ + "label", + "query" + ], + "type": "object" + }, "Table": { "allOf": [ { @@ -20825,7 +21365,7 @@ "type": "string" }, "visualizationObjectCustomFilters": { - "description": "Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only)", + "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" @@ -20924,6 +21464,50 @@ ], "type": "object" }, + "TestDestinationRequest": { + "description": "Request body with notification channel destination to test.", + "properties": { + "destination": { + "oneOf": [ + { + "$ref": "#/components/schemas/DefaultSmtp" + }, + { + "$ref": "#/components/schemas/InPlatform" + }, + { + "$ref": "#/components/schemas/Smtp" + }, + { + "$ref": "#/components/schemas/Webhook" + } + ] + } + }, + "required": [ + "destination" + ], + "type": "object" + }, + "TestNotification": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationContent" + }, + { + "properties": { + "message": { + "type": "string" + } + }, + "type": "object" + } + ], + "required": [ + "message" + ], + "type": "object" + }, "TestQueryDuration": { "description": "A structure containing duration of the test queries run on a data source. It is omitted if an error happens.", "properties": { @@ -21584,11 +22168,144 @@ } ], "description": "Webhook destination for notifications. The property url is required on create and update.", + "properties": { + "hasToken": { + "description": "Flag indicating if webhook has a token.", + "maxLength": 10000, + "nullable": true, + "readOnly": true, + "type": "boolean" + }, + "token": { + "description": "Bearer token for the webhook.", + "example": "secret", + "maxLength": 10000, + "nullable": true, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "The destination type.", + "enum": [ + "WEBHOOK" + ], + "type": "string" + }, + "url": { + "description": "The webhook URL.", + "example": "https://webhook.site/something", + "maxLength": 255, + "pattern": "https?\\://.*", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "WebhookAutomationInfo": { + "properties": { + "dashboardURL": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isCustomDashboardURL": { + "type": "boolean" + }, + "title": { + "type": "string" + } + }, "required": [ + "dashboardURL", + "id", + "isCustomDashboardURL" + ], + "type": "object" + }, + "WebhookMessage": { + "properties": { + "data": { + "$ref": "#/components/schemas/WebhookMessageData" + }, + "timestamp": { + "type": "string" + }, + "type": { + "enum": [ + "automation-task.completed", + "automation-task.limit-exceeded" + ], + "type": "string" + } + }, + "required": [ + "data", + "timestamp", "type" ], "type": "object" }, + "WebhookMessageData": { + "properties": { + "alert": { + "$ref": "#/components/schemas/AlertDescription" + }, + "automation": { + "$ref": "#/components/schemas/WebhookAutomationInfo" + }, + "details": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "recipients": { + "items": { + "$ref": "#/components/schemas/WebhookRecipient" + }, + "type": "array" + }, + "remainingActionCount": { + "format": "int32", + "type": "integer" + }, + "tabularExports": { + "items": { + "$ref": "#/components/schemas/ExportResult" + }, + "type": "array" + }, + "visualExports": { + "items": { + "$ref": "#/components/schemas/ExportResult" + }, + "type": "array" + } + }, + "required": [ + "automation" + ], + "type": "object" + }, + "WebhookRecipient": { + "properties": { + "email": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "required": [ + "email", + "id" + ], + "type": "object" + }, "WorkspaceDataSource": { "description": "The data source used for the particular workspace instead of the one defined in the LDM inherited from its parent workspace. Such data source cannot be defined for a single or a top-parent workspace.", "properties": { @@ -22242,7 +22959,182 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ScanSqlRequest" + "$ref": "#/components/schemas/ScanSqlRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "An example of a successful scan": { + "description": "An example of a successful scan", + "value": { + "columns": [ + { + "dataType": "NUMERIC", + "name": "budget" + }, + { + "dataType": "STRING", + "name": "category" + }, + { + "dataType": "NUMERIC", + "name": "spend" + } + ], + "dataPreview": [ + [ + "1000", + "campaign1", + "458.8" + ], + [ + "1800", + "campaign2", + "144" + ] + ] + } + } + }, + "schema": { + "$ref": "#/components/schemas/ScanSqlResponse" + } + } + }, + "description": "The result of the scan." + } + }, + "summary": "Collect metadata about SQL query", + "tags": [ + "Scanning", + "actions" + ], + "x-gdc-security-info": { + "description": "Minimal permission required to use this endpoint.", + "permissions": [ + "MANAGE" + ] + } + } + }, + "/api/v1/actions/dataSources/{dataSourceId}/test": { + "post": { + "description": "Test if it is possible to connect to a database using an existing data source definition.", + "operationId": "testDataSource", + "parameters": [ + { + "description": "Data source id", + "example": "myPostgres", + "in": "path", + "name": "dataSourceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "An example of a successful connection": { + "description": "An example of a successful connection", + "value": { + "queryDurationMillis": { + "createCacheTable": 235, + "simpleSelect": 562 + }, + "successful": true + } + }, + "An example of an unsuccessful connection": { + "description": "An example of an unsuccessful connection", + "value": { + "error": "Connection exception: Failed to initialize pool: FATAL: password authentication failed for user \"user\"", + "successful": false + } + } + }, + "schema": { + "$ref": "#/components/schemas/TestResponse" + } + } + }, + "description": "The result of the test of a data source connection." + } + }, + "summary": "Test data source connection by data source id", + "tags": [ + "Test Connection", + "actions" + ], + "x-gdc-security-info": { + "description": "Permissions required to test a data source.", + "permissions": [ + "USE" + ] + } + } + }, + "/api/v1/actions/dataSources/{dataSourceId}/uploadNotification": { + "post": { + "description": "Notification sets up all reports to be computed again with new data.", + "operationId": "registerUploadNotification", + "parameters": [ + { + "in": "path", + "name": "dataSourceId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "An upload notification has been successfully registered." + } + }, + "summary": "Register an upload notification", + "tags": [ + "Invalidate Cache", + "actions" + ], + "x-gdc-security-info": { + "description": "Minimal permission required to use this endpoint.", + "permissions": [ + "MANAGE" + ] + } + } + }, + "/api/v1/actions/notificationChannels/test": { + "post": { + "description": "Tests the notification channel by sending a test notification.", + "operationId": "testNotificationChannel", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDestinationRequest" } } }, @@ -22253,72 +23145,45 @@ "content": { "application/json": { "examples": { - "An example of a successful scan": { - "description": "An example of a successful scan", + "An example of a successful connection": { + "description": "An example of a successful connection", "value": { - "columns": [ - { - "dataType": "NUMERIC", - "name": "budget" - }, - { - "dataType": "STRING", - "name": "category" - }, - { - "dataType": "NUMERIC", - "name": "spend" - } - ], - "dataPreview": [ - [ - "1000", - "campaign1", - "458.8" - ], - [ - "1800", - "campaign2", - "144" - ] - ] + "successful": true + } + }, + "An example of an unsuccessful connection": { + "description": "An example of an unsuccessful connection", + "value": { + "error": "Authentication failed", + "successful": false } } }, "schema": { - "$ref": "#/components/schemas/ScanSqlResponse" + "$ref": "#/components/schemas/TestResponse" } } }, - "description": "The result of the scan." + "description": "The result of the test of a notification channel connection." } }, - "summary": "Collect metadata about SQL query", + "summary": "Test notification channel.", "tags": [ - "Scanning", + "Notification Channels", "actions" - ], - "x-gdc-security-info": { - "description": "Minimal permission required to use this endpoint.", - "permissions": [ - "MANAGE" - ] - } + ] } }, - "/api/v1/actions/dataSources/{dataSourceId}/test": { + "/api/v1/actions/notificationChannels/{notificationChannelId}/test": { "post": { - "description": "Test if it is possible to connect to a database using an existing data source definition.", - "operationId": "testDataSource", + "description": "Tests the existing notification channel by sending a test notification.", + "operationId": "testExistingNotificationChannel", "parameters": [ { - "description": "Data source id", - "example": "myPostgres", "in": "path", - "name": "dataSourceId", + "name": "notificationChannelId", "required": true, "schema": { - "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" } } @@ -22327,11 +23192,10 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TestRequest" + "$ref": "#/components/schemas/TestDestinationRequest" } } - }, - "required": true + } }, "responses": { "200": { @@ -22341,17 +23205,13 @@ "An example of a successful connection": { "description": "An example of a successful connection", "value": { - "queryDurationMillis": { - "createCacheTable": 235, - "simpleSelect": 562 - }, "successful": true } }, "An example of an unsuccessful connection": { "description": "An example of an unsuccessful connection", "value": { - "error": "Connection exception: Failed to initialize pool: FATAL: password authentication failed for user \"user\"", + "error": "Authentication failed", "successful": false } } @@ -22361,30 +23221,139 @@ } } }, - "description": "The result of the test of a data source connection." + "description": "The result of the test of a notification channel connection." } }, - "summary": "Test data source connection by data source id", + "summary": "Test existing notification channel.", + "tags": [ + "Notification Channels", + "actions" + ] + } + }, + "/api/v1/actions/notifications": { + "get": { + "description": "Get latest in-platform notifications for the current user.", + "operationId": "getNotifications", + "parameters": [ + { + "description": "Workspace ID to filter notifications by.", + "in": "query", + "name": "workspaceId", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "Filter notifications by read status.", + "in": "query", + "name": "isRead", + "required": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "required": false, + "schema": { + "default": "0", + "minimum": 0, + "type": "string" + }, + "style": "form" + }, + { + "description": "The size of the page to be returned.", + "in": "query", + "name": "size", + "required": false, + "schema": { + "default": "20", + "minimum": 1, + "type": "string" + }, + "style": "form" + }, + { + "description": "Additional meta information to include in the response.", + "explode": true, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "items": { + "enum": [ + "total", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notifications" + } + } + }, + "description": "OK" + } + }, + "summary": "Get latest notifications.", "tags": [ - "Test Connection", "actions" + ] + } + }, + "/api/v1/actions/notifications/markAsRead": { + "post": { + "description": "Mark all user in-platform notifications as read.", + "operationId": "markAsReadNotificationAll", + "parameters": [ + { + "description": "Workspace ID where to mark notifications as read.", + "in": "query", + "name": "workspaceId", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + } ], - "x-gdc-security-info": { - "description": "Permissions required to test a data source.", - "permissions": [ - "USE" - ] - } + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Mark all notifications as read.", + "tags": [ + "actions" + ] } }, - "/api/v1/actions/dataSources/{dataSourceId}/uploadNotification": { + "/api/v1/actions/notifications/{notificationId}/markAsRead": { "post": { - "description": "Notification sets up all reports to be computed again with new data.", - "operationId": "registerUploadNotification", + "description": "Mark in-platform notification by its ID as read.", + "operationId": "markAsReadNotification", "parameters": [ { + "description": "Notification ID to mark as read.", "in": "path", - "name": "dataSourceId", + "name": "notificationId", "required": true, "schema": { "type": "string" @@ -22393,20 +23362,13 @@ ], "responses": { "204": { - "description": "An upload notification has been successfully registered." + "description": "No Content" } }, - "summary": "Register an upload notification", + "summary": "Mark notification as read.", "tags": [ - "Invalidate Cache", "actions" - ], - "x-gdc-security-info": { - "description": "Minimal permission required to use this endpoint.", - "permissions": [ - "MANAGE" - ] - } + ] } }, "/api/v1/actions/organization/automations/unsubscribe": { @@ -23204,10 +24166,10 @@ ] } }, - "/api/v1/actions/workspaces/{workspaceId}/ai/route": { + "/api/v1/actions/workspaces/{workspaceId}/ai/search": { "post": { - "description": "(BETA) Uses similarity (e.g. cosine distance) to find most similar use cases.", - "operationId": "aiRoute", + "description": "(BETA) Uses similarity (e.g. cosine distance) search to find top X most similar metadata objects.", + "operationId": "aiSearch", "parameters": [ { "description": "Workspace identifier", @@ -23224,7 +24186,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteRequest" + "$ref": "#/components/schemas/SearchRequest" } } }, @@ -23235,68 +24197,64 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteResult" + "$ref": "#/components/schemas/SearchResult" } } }, "description": "OK" } }, - "summary": "(BETA) Route to supported use cases based on this input query.", + "summary": "(BETA) Semantic Search in Metadata", "tags": [ "Smart Functions", "actions" ] } }, - "/api/v1/actions/workspaces/{workspaceId}/ai/search": { - "post": { - "description": "(BETA) Uses similarity (e.g. cosine distance) search to find top X most similar metadata objects.", - "operationId": "aiSearch", + "/api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/availableAssignees": { + "get": { + "operationId": "availableAssignees", "parameters": [ { - "description": "Workspace identifier", "in": "path", "name": "workspaceId", "required": true, "schema": { - "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + }, + { + "in": "path", + "name": "dashboardId", + "required": true, + "schema": { "type": "string" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchRequest" - } - } - }, - "required": true - }, "responses": { "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchResult" + "$ref": "#/components/schemas/AvailableAssignees" } } }, "description": "OK" } }, - "summary": "(BETA) Semantic Search in Metadata", + "summary": "Get Available Assignees", "tags": [ - "Smart Functions", + "Permissions", "actions" ] } }, - "/api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/availableAssignees": { - "get": { - "operationId": "availableAssignees", + "/api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/export/tabular": { + "post": { + "description": "Note: This API is an experimental and is going to change. Please, use it accordingly.An tabular export job will be created based on the export request and put to queue to be executed. The result of the operation will be an exportResult identifier that will be assembled by the client into a url that can be polled.", + "operationId": "createDashboardExportRequest", "parameters": [ { "in": "path", @@ -23316,22 +24274,28 @@ } ], "responses": { - "200": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AvailableAssignees" + "$ref": "#/components/schemas/ExportResponse" } } }, - "description": "OK" + "description": "Tabular export request created successfully." } }, - "summary": "Get Available Assignees", + "summary": "(EXPERIMENTAL) Create dashboard tabular export request", "tags": [ - "Permissions", + "Tabular export", "actions" - ] + ], + "x-gdc-security-info": { + "description": "Permissions required to execute tabular export.", + "permissions": [ + "EXPORT_TABULAR" + ] + } } }, "/api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/managePermissions": { @@ -30021,7 +30985,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,config,hierarchy,dataModelDatasets,page,all", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,page,all", "explode": false, "in": "query", "name": "metaInclude", @@ -30030,8 +30994,8 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "config", + "permissions", "hierarchy", "dataModelDatasets", "page", @@ -30097,7 +31061,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,config,hierarchy,dataModelDatasets,all", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", "explode": false, "in": "query", "name": "metaInclude", @@ -30106,8 +31070,8 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "config", + "permissions", "hierarchy", "dataModelDatasets", "all", @@ -30231,7 +31195,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,config,hierarchy,dataModelDatasets,all", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", "explode": false, "in": "query", "name": "metaInclude", @@ -30240,8 +31204,8 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "config", + "permissions", "hierarchy", "dataModelDatasets", "all", diff --git a/schemas/gooddata-automation-client.json b/schemas/gooddata-automation-client.json new file mode 100644 index 000000000..129bdccec --- /dev/null +++ b/schemas/gooddata-automation-client.json @@ -0,0 +1,845 @@ +{ + "components": { + "schemas": { + "AlertDescription": { + "properties": { + "attribute": { + "type": "string" + }, + "condition": { + "type": "string" + }, + "currentValues": { + "items": { + "$ref": "#/components/schemas/AlertEvaluationRow" + }, + "type": "array" + }, + "errorMessage": { + "type": "string" + }, + "filterCount": { + "format": "int32", + "type": "integer" + }, + "formattedThreshold": { + "type": "string" + }, + "lowerThreshold": { + "format": "double", + "type": "number" + }, + "metric": { + "type": "string" + }, + "remainingAlertEvaluationCount": { + "format": "int32", + "type": "integer" + }, + "status": { + "enum": [ + "SUCCESS", + "ERROR", + "INTERNAL_ERROR", + "TIMEOUT" + ], + "type": "string" + }, + "threshold": { + "format": "double", + "type": "number" + }, + "totalValueCount": { + "format": "int32", + "type": "integer" + }, + "traceId": { + "type": "string" + }, + "triggeredCount": { + "format": "int32", + "type": "integer" + }, + "upperThreshold": { + "format": "double", + "type": "number" + } + }, + "required": [ + "condition", + "metric" + ], + "type": "object" + }, + "AlertEvaluationRow": { + "properties": { + "computedMetric": { + "$ref": "#/components/schemas/MetricRecord" + }, + "labelValue": { + "type": "string" + }, + "primaryMetric": { + "$ref": "#/components/schemas/MetricRecord" + }, + "secondaryMetric": { + "$ref": "#/components/schemas/MetricRecord" + } + }, + "type": "object" + }, + "AutomationNotification": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationContent" + }, + { + "properties": { + "content": { + "$ref": "#/components/schemas/WebhookMessage" + } + }, + "type": "object" + } + ], + "required": [ + "content" + ], + "type": "object" + }, + "DefaultSmtp": { + "description": "Default SMTP destination for notifications.", + "properties": { + "fromEmail": { + "default": "no-reply@gooddata.com", + "description": "E-mail address to send notifications from. Currently this does not have any effect. E-mail 'no-reply@gooddata.com' is used instead.", + "format": "email", + "type": "string" + }, + "fromEmailName": { + "default": "GoodData", + "description": "An optional e-mail name to send notifications from. Currently this does not have any effect. E-mail from name 'GoodData' is used instead.", + "type": "string" + }, + "type": { + "description": "The destination type.", + "enum": [ + "DEFAULT_SMTP" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "ExportResult": { + "properties": { + "errorMessage": { + "type": "string" + }, + "exportId": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "fileUri": { + "type": "string" + }, + "status": { + "enum": [ + "SUCCESS", + "ERROR", + "INTERNAL_ERROR", + "TIMEOUT" + ], + "type": "string" + }, + "traceId": { + "type": "string" + } + }, + "required": [ + "exportId", + "fileName", + "status" + ], + "type": "object" + }, + "InPlatform": { + "description": "In-platform destination for notifications.", + "properties": { + "type": { + "description": "The destination type.", + "enum": [ + "IN_PLATFORM" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "MetricRecord": { + "properties": { + "formattedValue": { + "type": "string" + }, + "value": { + "format": "double", + "type": "number" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "Notification": { + "properties": { + "automationId": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "data": { + "oneOf": [ + { + "$ref": "#/components/schemas/AutomationNotification" + }, + { + "$ref": "#/components/schemas/TestNotification" + } + ] + }, + "id": { + "type": "string" + }, + "isRead": { + "type": "boolean" + }, + "workspaceId": { + "type": "string" + } + }, + "required": [ + "createdAt", + "data", + "id", + "isRead" + ], + "type": "object" + }, + "NotificationChannelDestination": { + "oneOf": [ + { + "$ref": "#/components/schemas/Webhook" + }, + { + "$ref": "#/components/schemas/Smtp" + }, + { + "$ref": "#/components/schemas/DefaultSmtp" + }, + { + "$ref": "#/components/schemas/InPlatform" + } + ], + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "NotificationContent": { + "discriminator": { + "mapping": { + "AUTOMATION": "#/components/schemas/AutomationNotification", + "TEST": "#/components/schemas/TestNotification" + }, + "propertyName": "type" + }, + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "Notifications": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/Notification" + }, + "type": "array" + }, + "meta": { + "$ref": "#/components/schemas/NotificationsMeta" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" + }, + "NotificationsMeta": { + "properties": { + "total": { + "$ref": "#/components/schemas/NotificationsMetaTotal" + } + }, + "type": "object" + }, + "NotificationsMetaTotal": { + "properties": { + "all": { + "format": "int64", + "type": "integer" + }, + "unread": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "all", + "unread" + ], + "type": "object" + }, + "Smtp": { + "description": "Custom SMTP destination for notifications. The properties host, port, username, and password are required on create and update", + "properties": { + "fromEmail": { + "default": "no-reply@gooddata.com", + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + }, + "fromEmailName": { + "default": "GoodData", + "description": "An optional e-mail name to send notifications from.", + "type": "string" + }, + "host": { + "description": "The SMTP server address.", + "type": "string" + }, + "password": { + "description": "The SMTP server password.", + "type": "string", + "writeOnly": true + }, + "port": { + "description": "The SMTP server port.", + "enum": [ + 25, + 465, + 587, + 2525 + ], + "format": "int32", + "type": "integer" + }, + "type": { + "description": "The destination type.", + "enum": [ + "SMTP" + ], + "type": "string" + }, + "username": { + "description": "The SMTP server username.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "TestDestinationRequest": { + "description": "Request body with notification channel destination to test.", + "properties": { + "destination": { + "oneOf": [ + { + "$ref": "#/components/schemas/DefaultSmtp" + }, + { + "$ref": "#/components/schemas/InPlatform" + }, + { + "$ref": "#/components/schemas/Smtp" + }, + { + "$ref": "#/components/schemas/Webhook" + } + ] + } + }, + "required": [ + "destination" + ], + "type": "object" + }, + "TestNotification": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationContent" + }, + { + "properties": { + "message": { + "type": "string" + } + }, + "type": "object" + } + ], + "required": [ + "message" + ], + "type": "object" + }, + "TestResponse": { + "description": "Response from notification channel testing.", + "properties": { + "error": { + "description": "Field containing more details in case of a failure. Details are available to a privileged user only.", + "example": "Authentication failed", + "type": "string" + }, + "successful": { + "description": "A flag indicating whether test passed or not.", + "example": true, + "type": "boolean" + } + }, + "required": [ + "successful" + ], + "type": "object" + }, + "Webhook": { + "description": "Webhook destination for notifications. The property url is required on create and update.", + "properties": { + "hasToken": { + "description": "Flag indicating if webhook has a token.", + "maxLength": 10000, + "nullable": true, + "readOnly": true, + "type": "boolean" + }, + "token": { + "description": "Bearer token for the webhook.", + "example": "secret", + "maxLength": 10000, + "nullable": true, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "The destination type.", + "enum": [ + "WEBHOOK" + ], + "type": "string" + }, + "url": { + "description": "The webhook URL.", + "example": "https://webhook.site/something", + "maxLength": 255, + "pattern": "https?\\://.*", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "WebhookAutomationInfo": { + "properties": { + "dashboardURL": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isCustomDashboardURL": { + "type": "boolean" + }, + "title": { + "type": "string" + } + }, + "required": [ + "dashboardURL", + "id", + "isCustomDashboardURL" + ], + "type": "object" + }, + "WebhookMessage": { + "properties": { + "data": { + "$ref": "#/components/schemas/WebhookMessageData" + }, + "timestamp": { + "type": "string" + }, + "type": { + "enum": [ + "automation-task.completed", + "automation-task.limit-exceeded" + ], + "type": "string" + } + }, + "required": [ + "data", + "timestamp", + "type" + ], + "type": "object" + }, + "WebhookMessageData": { + "properties": { + "alert": { + "$ref": "#/components/schemas/AlertDescription" + }, + "automation": { + "$ref": "#/components/schemas/WebhookAutomationInfo" + }, + "details": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "recipients": { + "items": { + "$ref": "#/components/schemas/WebhookRecipient" + }, + "type": "array" + }, + "remainingActionCount": { + "format": "int32", + "type": "integer" + }, + "tabularExports": { + "items": { + "$ref": "#/components/schemas/ExportResult" + }, + "type": "array" + }, + "visualExports": { + "items": { + "$ref": "#/components/schemas/ExportResult" + }, + "type": "array" + } + }, + "required": [ + "automation" + ], + "type": "object" + }, + "WebhookRecipient": { + "properties": { + "email": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "required": [ + "email", + "id" + ], + "type": "object" + } + } + }, + "info": { + "title": "OpenAPI definition", + "version": "v0" + }, + "openapi": "3.0.1", + "paths": { + "/api/v1/actions/notificationChannels/test": { + "post": { + "description": "Tests the notification channel by sending a test notification.", + "operationId": "testNotificationChannel", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDestinationRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "An example of a successful connection": { + "description": "An example of a successful connection", + "value": { + "successful": true + } + }, + "An example of an unsuccessful connection": { + "description": "An example of an unsuccessful connection", + "value": { + "error": "Authentication failed", + "successful": false + } + } + }, + "schema": { + "$ref": "#/components/schemas/TestResponse" + } + } + }, + "description": "The result of the test of a notification channel connection." + } + }, + "summary": "Test notification channel.", + "tags": [ + "Notification Channels", + "actions" + ] + } + }, + "/api/v1/actions/notificationChannels/{notificationChannelId}/test": { + "post": { + "description": "Tests the existing notification channel by sending a test notification.", + "operationId": "testExistingNotificationChannel", + "parameters": [ + { + "in": "path", + "name": "notificationChannelId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDestinationRequest" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "An example of a successful connection": { + "description": "An example of a successful connection", + "value": { + "successful": true + } + }, + "An example of an unsuccessful connection": { + "description": "An example of an unsuccessful connection", + "value": { + "error": "Authentication failed", + "successful": false + } + } + }, + "schema": { + "$ref": "#/components/schemas/TestResponse" + } + } + }, + "description": "The result of the test of a notification channel connection." + } + }, + "summary": "Test existing notification channel.", + "tags": [ + "Notification Channels", + "actions" + ] + } + }, + "/api/v1/actions/notifications": { + "get": { + "description": "Get latest in-platform notifications for the current user.", + "operationId": "getNotifications", + "parameters": [ + { + "description": "Workspace ID to filter notifications by.", + "in": "query", + "name": "workspaceId", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "Filter notifications by read status.", + "in": "query", + "name": "isRead", + "required": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "required": false, + "schema": { + "default": "0", + "minimum": 0, + "type": "string" + }, + "style": "form" + }, + { + "description": "The size of the page to be returned.", + "in": "query", + "name": "size", + "required": false, + "schema": { + "default": "20", + "minimum": 1, + "type": "string" + }, + "style": "form" + }, + { + "description": "Additional meta information to include in the response.", + "explode": true, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "items": { + "enum": [ + "total", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notifications" + } + } + }, + "description": "OK" + } + }, + "summary": "Get latest notifications.", + "tags": [ + "actions" + ] + } + }, + "/api/v1/actions/notifications/markAsRead": { + "post": { + "description": "Mark all user in-platform notifications as read.", + "operationId": "markAsReadNotificationAll", + "parameters": [ + { + "description": "Workspace ID where to mark notifications as read.", + "in": "query", + "name": "workspaceId", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Mark all notifications as read.", + "tags": [ + "actions" + ] + } + }, + "/api/v1/actions/notifications/{notificationId}/markAsRead": { + "post": { + "description": "Mark in-platform notification by its ID as read.", + "operationId": "markAsReadNotification", + "parameters": [ + { + "description": "Notification ID to mark as read.", + "in": "path", + "name": "notificationId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Mark notification as read.", + "tags": [ + "actions" + ] + } + } + }, + "servers": [ + { + "description": "GoodData.CN endpoint", + "url": "/" + } + ], + "tags": [ + { + "description": "| execution of some form of computation (RPC over JSON)", + "name": "actions" + } + ] +} diff --git a/schemas/gooddata-export-client.json b/schemas/gooddata-export-client.json index ec0468b55..5a2647cdc 100644 --- a/schemas/gooddata-export-client.json +++ b/schemas/gooddata-export-client.json @@ -212,7 +212,7 @@ "type": "string" }, "visualizationObjectCustomFilters": { - "description": "Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only)", + "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" @@ -259,6 +259,53 @@ }, "openapi": "3.0.1", "paths": { + "/api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/export/tabular": { + "post": { + "description": "Note: This API is an experimental and is going to change. Please, use it accordingly.An tabular export job will be created based on the export request and put to queue to be executed. The result of the operation will be an exportResult identifier that will be assembled by the client into a url that can be polled.", + "operationId": "createDashboardExportRequest", + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "dashboardId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExportResponse" + } + } + }, + "description": "Tabular export request created successfully." + } + }, + "summary": "(EXPERIMENTAL) Create dashboard tabular export request", + "tags": [ + "Tabular export", + "actions" + ], + "x-gdc-security-info": { + "description": "Permissions required to execute tabular export.", + "permissions": [ + "EXPORT_TABULAR" + ] + } + } + }, "/api/v1/actions/workspaces/{workspaceId}/export/tabular": { "post": { "description": "An tabular export job will be created based on the export request and put to queue to be executed. The result of the operation will be an exportResult identifier that will be assembled by the client into a url that can be polled.", diff --git a/schemas/gooddata-metadata-client.json b/schemas/gooddata-metadata-client.json index f98508824..cd1594523 100644 --- a/schemas/gooddata-metadata-client.json +++ b/schemas/gooddata-metadata-client.json @@ -99,6 +99,7 @@ "type": "object" }, "AfmIdentifier": { + "description": "Reference to the attribute label to which the filter should be applied.", "oneOf": [ { "$ref": "#/components/schemas/AfmObjectIdentifier" @@ -162,6 +163,7 @@ "type": "object" }, "AfmObjectIdentifierAttribute": { + "description": "Reference to the date attribute to use.", "properties": { "identifier": { "properties": { @@ -190,6 +192,7 @@ "type": "object" }, "AfmObjectIdentifierCore": { + "description": "Reference to the metric, fact or attribute object to use for the metric.", "properties": { "identifier": { "properties": { @@ -221,6 +224,7 @@ "type": "object" }, "AfmObjectIdentifierDataset": { + "description": "Reference to the date dataset to which the filter should be applied.", "properties": { "identifier": { "properties": { @@ -413,7 +417,7 @@ "type": "object" }, "ArithmeticMeasureDefinition": { - "description": "Metric representing arithmetics between metrics.", + "description": "Metric representing arithmetics between other metrics.", "properties": { "arithmeticMeasure": { "properties": { @@ -524,12 +528,14 @@ "$ref": "#/components/schemas/AfmObjectIdentifierLabel" }, "localIdentifier": { + "description": "Local identifier of the attribute. This can be used to reference the attribute in other parts of the execution definition.", + "example": "attribute_1", "pattern": "^[.a-zA-Z0-9_-]+$", "type": "string" }, "showAllValues": { "default": false, - "description": "Specifies that the label should be outer-joined.", + "description": "Indicates whether to show all values of given attribute even if the data bound to those values is not available.", "type": "boolean" } }, @@ -573,6 +579,19 @@ ], "type": "object" }, + "AutomationExternalRecipient": { + "properties": { + "email": { + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, "AutomationSchedule": { "properties": { "cron": { @@ -725,6 +744,13 @@ "applyOnResult": { "type": "boolean" }, + "dimensionality": { + "description": "References to the attributes to be used when filtering.", + "items": { + "$ref": "#/components/schemas/AfmIdentifier" + }, + "type": "array" + }, "localIdentifier": { "type": "string" }, @@ -744,6 +770,7 @@ "type": "string" }, "treatNullValuesAs": { + "description": "A value that will be substituted for null values in the metric for the comparisons.", "example": 0, "type": "number" }, @@ -1484,6 +1511,14 @@ "type": "array", "uniqueItems": true }, + "externalRecipients": { + "description": "External recipients of the automation action results.", + "items": { + "$ref": "#/components/schemas/AutomationExternalRecipient" + }, + "type": "array", + "uniqueItems": true + }, "id": { "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" @@ -2407,12 +2442,6 @@ "maxLength": 255, "type": "string" }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -2425,7 +2454,8 @@ } }, "required": [ - "id" + "id", + "identifiers" ], "type": "object" }, @@ -2637,10 +2667,11 @@ "properties": { "allowedRecipients": { "default": "INTERNAL", - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\n", + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", "enum": [ "CREATOR", - "INTERNAL" + "INTERNAL", + "EXTERNAL" ], "type": "string" }, @@ -2648,6 +2679,16 @@ "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", "type": "string" }, + "dashboardLinkVisibility": { + "default": "INTERNAL_ONLY", + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, "description": { "description": "Description of a notification channel.", "example": "This is a channel", @@ -3136,7 +3177,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "example": "TIMEZONE", "type": "string" @@ -4591,6 +4634,7 @@ "type": "boolean" }, "filter": { + "description": "MAQL query representing the filter.", "type": "string" }, "localIdentifier": { @@ -4614,6 +4658,7 @@ "inline": { "properties": { "maql": { + "description": "MAQL query defining the metric.", "type": "string" } }, @@ -6030,6 +6075,23 @@ "description": "Additional details to be included in the automated message.", "maxLength": 10000 }, + "externalRecipients": { + "description": "External recipients of the automation action results.", + "items": { + "properties": { + "email": { + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "type": "array" + }, "metadata": { "description": "Additional information for the automation.", "maxLength": 15000, @@ -6260,6 +6322,23 @@ "description": "Additional details to be included in the automated message.", "maxLength": 10000 }, + "externalRecipients": { + "description": "External recipients of the automation action results.", + "items": { + "properties": { + "email": { + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "type": "array" + }, "metadata": { "description": "Additional information for the automation.", "maxLength": 15000, @@ -6594,6 +6673,23 @@ "description": "Additional details to be included in the automated message.", "maxLength": 10000 }, + "externalRecipients": { + "description": "External recipients of the automation action results.", + "items": { + "properties": { + "email": { + "description": "E-mail address to send notifications from.", + "format": "email", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "type": "array" + }, "metadata": { "description": "Additional information for the automation.", "maxLength": 15000, @@ -10725,12 +10821,6 @@ "maxLength": 255, "type": "string" }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -10742,6 +10832,9 @@ "type": "string" } }, + "required": [ + "identifiers" + ], "type": "object" }, "id": { @@ -10760,6 +10853,7 @@ } }, "required": [ + "attributes", "id", "type" ], @@ -10804,18 +10898,15 @@ "maxLength": 255, "type": "string" }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, "type": "string" } }, + "required": [ + "identifiers" + ], "type": "object" }, "id": { @@ -10834,6 +10925,7 @@ } }, "required": [ + "attributes", "id", "type" ], @@ -10923,12 +11015,6 @@ "maxLength": 255, "type": "string" }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -10958,6 +11044,7 @@ } }, "required": [ + "attributes", "id", "type" ], @@ -11416,7 +11503,6 @@ "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, - "nullable": true, "type": "string" }, "llmOrganization": { @@ -11430,7 +11516,6 @@ "enum": [ "OPENAI" ], - "example": "OPENAI", "type": "string" }, "title": { @@ -11442,10 +11527,21 @@ "description": "The token to use to connect to the LLM provider.", "maxLength": 10000, "type": "string" + }, + "workspaceIds": { + "description": "List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.", + "example": [ + "demo", + "trial" + ], + "items": { + "maxLength": 255, + "type": "string" + }, + "type": "array" } }, "required": [ - "provider", "title", "token" ], @@ -11504,7 +11600,6 @@ "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, - "nullable": true, "type": "string" }, "llmOrganization": { @@ -11518,17 +11613,27 @@ "enum": [ "OPENAI" ], - "example": "OPENAI", "type": "string" }, "title": { "description": "User-facing title of the LLM Provider.", "maxLength": 255, "type": "string" + }, + "workspaceIds": { + "description": "List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.", + "example": [ + "demo", + "trial" + ], + "items": { + "maxLength": 255, + "type": "string" + }, + "type": "array" } }, "required": [ - "provider", "title" ], "type": "object" @@ -11626,7 +11731,6 @@ "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, - "nullable": true, "type": "string" }, "llmOrganization": { @@ -11640,7 +11744,6 @@ "enum": [ "OPENAI" ], - "example": "OPENAI", "type": "string" }, "title": { @@ -11652,6 +11755,18 @@ "description": "The token to use to connect to the LLM provider.", "maxLength": 10000, "type": "string" + }, + "workspaceIds": { + "description": "List of workspace IDs for which LLM endpoint is valid. If empty, it is valid for all workspaces.", + "example": [ + "demo", + "trial" + ], + "items": { + "maxLength": 255, + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -12219,10 +12334,11 @@ "attributes": { "properties": { "allowedRecipients": { - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\n", + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", "enum": [ "CREATOR", - "INTERNAL" + "INTERNAL", + "EXTERNAL" ], "type": "string" }, @@ -12230,6 +12346,15 @@ "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", "type": "string" }, + "dashboardLinkVisibility": { + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, "description": { "maxLength": 10000, "nullable": true, @@ -12252,16 +12377,6 @@ } ] }, - "destinationType": { - "enum": [ - "WEBHOOK", - "SMTP", - "DEFAULT_SMTP", - "IN_PLATFORM" - ], - "nullable": true, - "type": "string" - }, "inPlatformNotification": { "description": "In-platform notifications configuration. No effect if the destination type is IN_PLATFORM.\nDISABLED - in-platform notifications are not sent\nENABLED - in-platform notifications are sent in addition to the regular notifications\n", "enum": [ @@ -12335,10 +12450,11 @@ "attributes": { "properties": { "allowedRecipients": { - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\n", + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", "enum": [ "CREATOR", - "INTERNAL" + "INTERNAL", + "EXTERNAL" ], "type": "string" }, @@ -12346,6 +12462,15 @@ "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", "type": "string" }, + "dashboardLinkVisibility": { + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, "description": { "maxLength": 10000, "nullable": true, @@ -12472,10 +12597,11 @@ "attributes": { "properties": { "allowedRecipients": { - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\n", + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", "enum": [ "CREATOR", - "INTERNAL" + "INTERNAL", + "EXTERNAL" ], "type": "string" }, @@ -12483,6 +12609,15 @@ "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", "type": "string" }, + "dashboardLinkVisibility": { + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, "description": { "maxLength": 10000, "nullable": true, @@ -12505,16 +12640,6 @@ } ] }, - "destinationType": { - "enum": [ - "WEBHOOK", - "SMTP", - "DEFAULT_SMTP", - "IN_PLATFORM" - ], - "nullable": true, - "type": "string" - }, "inPlatformNotification": { "description": "In-platform notifications configuration. No effect if the destination type is IN_PLATFORM.\nDISABLED - in-platform notifications are not sent\nENABLED - in-platform notifications are sent in addition to the regular notifications\n", "enum": [ @@ -12569,10 +12694,11 @@ "attributes": { "properties": { "allowedRecipients": { - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\n", + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", "enum": [ "CREATOR", - "INTERNAL" + "INTERNAL", + "EXTERNAL" ], "type": "string" }, @@ -12580,6 +12706,15 @@ "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", "type": "string" }, + "dashboardLinkVisibility": { + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, "description": { "maxLength": 10000, "nullable": true, @@ -12602,16 +12737,6 @@ } ] }, - "destinationType": { - "enum": [ - "WEBHOOK", - "SMTP", - "DEFAULT_SMTP", - "IN_PLATFORM" - ], - "nullable": true, - "type": "string" - }, "inPlatformNotification": { "description": "In-platform notifications configuration. No effect if the destination type is IN_PLATFORM.\nDISABLED - in-platform notifications are not sent\nENABLED - in-platform notifications are sent in addition to the regular notifications\n", "enum": [ @@ -13093,7 +13218,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -13159,7 +13286,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -13265,7 +13394,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -14737,7 +14868,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -14803,7 +14936,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -16546,7 +16681,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -16612,7 +16749,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -16744,7 +16883,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -16810,7 +16951,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "type": "string" } @@ -16965,11 +17108,13 @@ "type": "object" }, "MeasureItem": { + "description": "Metric is a quantity that is calculated from the data.", "properties": { "definition": { "$ref": "#/components/schemas/MeasureDefinition" }, "localIdentifier": { + "description": "Local identifier of the metric. This can be used to reference the metric in other parts of the execution definition.", "example": "metric_1", "pattern": "^[.a-zA-Z0-9_-]+$", "type": "string" @@ -17389,11 +17534,14 @@ "type": "object" }, "PopDataset": { + "description": "Combination of the date data set to use and how many periods ago to calculate the previous period for.", "properties": { "dataset": { "$ref": "#/components/schemas/AfmObjectIdentifierDataset" }, "periodsAgo": { + "description": "Number of periods ago to calculate the previous period for.", + "example": 1, "format": "int32", "type": "integer" } @@ -17410,6 +17558,7 @@ "previousPeriodMeasure": { "properties": { "dateDatasets": { + "description": "Specification of which date data sets to use for determining the period to calculate the previous period for.", "items": { "$ref": "#/components/schemas/PopDataset" }, @@ -17432,11 +17581,14 @@ "type": "object" }, "PopDate": { + "description": "Combination of the date attribute to use and how many periods ago to calculate the PoP for.", "properties": { "attribute": { "$ref": "#/components/schemas/AfmObjectIdentifierAttribute" }, "periodsAgo": { + "description": "Number of periods ago to calculate the previous period for.", + "example": 1, "format": "int32", "type": "integer" } @@ -17453,6 +17605,7 @@ "overPeriodMeasure": { "properties": { "dateAttributes": { + "description": "Attributes to use for determining the period to calculate the PoP for.", "items": { "$ref": "#/components/schemas/PopDate" }, @@ -17550,6 +17703,13 @@ "applyOnResult": { "type": "boolean" }, + "dimensionality": { + "description": "References to the attributes to be used when filtering.", + "items": { + "$ref": "#/components/schemas/AfmIdentifier" + }, + "type": "array" + }, "from": { "example": 100, "type": "number" @@ -17573,6 +17733,7 @@ "type": "number" }, "treatNullValuesAs": { + "description": "A value that will be substituted for null values in the metric for the comparisons.", "example": 0, "type": "number" } @@ -17610,16 +17771,25 @@ "applyOnResult": { "type": "boolean" }, + "dimensionality": { + "description": "References to the attributes to be used when filtering.", + "items": { + "$ref": "#/components/schemas/AfmIdentifier" + }, + "type": "array" + }, "localIdentifier": { "type": "string" }, "measures": { + "description": "References to the metrics to be used when filtering.", "items": { "$ref": "#/components/schemas/AfmIdentifier" }, "type": "array" }, "operator": { + "description": "The type of ranking to use, TOP or BOTTOM.", "enum": [ "TOP", "BOTTOM" @@ -17627,6 +17797,7 @@ "type": "string" }, "value": { + "description": "Number of top/bottom values to filter.", "example": 5, "format": "int32", "type": "integer" @@ -17843,7 +18014,9 @@ "OPENAI_CONFIG", "ENABLE_FILE_ANALYTICS", "ALERT", - "SEPARATORS" + "SEPARATORS", + "DATE_FILTER_CONFIG", + "JIT_PROVISIONING" ], "example": "TIMEZONE", "type": "string" @@ -17979,6 +18152,7 @@ "type": "object" }, "SimpleMeasureDefinition": { + "description": "Metric defined by referencing a MAQL metric or an LDM fact object with aggregation.", "properties": { "measure": { "properties": { @@ -17999,7 +18173,7 @@ }, "computeRatio": { "default": false, - "description": "If true compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).", + "description": "If true, compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).", "example": true, "type": "boolean" }, @@ -18203,7 +18377,7 @@ "type": "string" }, "visualizationObjectCustomFilters": { - "description": "Optional custom filters (as array of IFilter objects defined in UI SDK) to be applied when visualizationObject is given. (HTML/PDF only)", + "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" @@ -25191,7 +25365,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,config,hierarchy,dataModelDatasets,page,all", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,page,all", "explode": false, "in": "query", "name": "metaInclude", @@ -25200,8 +25374,8 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "config", + "permissions", "hierarchy", "dataModelDatasets", "page", @@ -25267,7 +25441,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,config,hierarchy,dataModelDatasets,all", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", "explode": false, "in": "query", "name": "metaInclude", @@ -25276,8 +25450,8 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "config", + "permissions", "hierarchy", "dataModelDatasets", "all", @@ -25401,7 +25575,7 @@ }, { "description": "Include Meta objects.", - "example": "metaInclude=permissions,config,hierarchy,dataModelDatasets,all", + "example": "metaInclude=config,permissions,hierarchy,dataModelDatasets,all", "explode": false, "in": "query", "name": "metaInclude", @@ -25410,8 +25584,8 @@ "description": "Included meta objects", "items": { "enum": [ - "permissions", "config", + "permissions", "hierarchy", "dataModelDatasets", "all",