From 2626b045fdfbf61cdc6c9773335c142fdde81eab Mon Sep 17 00:00:00 2001 From: Christopher Bonilla Date: Tue, 1 Jul 2025 04:09:58 +0200 Subject: [PATCH 1/2] chore: regenerate api client JIRA: TRIVIAL risk: low --- gooddata-api-client/.openapi-generator/FILES | 12 +- gooddata-api-client/README.md | 9 +- gooddata-api-client/docs/ActionsApi.md | 98 ++++ gooddata-api-client/docs/AdHocAutomation.md | 1 + .../docs/AutomationDashboardTabularExport.md | 12 + gooddata-api-client/docs/AutomationsApi.md | 95 +++ .../docs/DashboardTabularExportRequestV2.md | 18 + .../docs/DeclarativeAutomation.md | 1 + .../docs/DeclarativeIdentityProvider.md | 3 +- .../docs/DeclarativeSourceFactReference.md | 2 +- gooddata-api-client/docs/EntitiesApi.md | 62 +- .../docs/IdentityProvidersApi.md | 6 +- .../docs/JsonApiAutomationInAttributes.md | 1 + ...nAttributesDashboardTabularExportsInner.md | 12 + .../docs/JsonApiAutomationOutAttributes.md | 1 + .../docs/JsonApiIdentityProviderIn.md | 2 +- .../JsonApiIdentityProviderInAttributes.md | 3 +- .../docs/JsonApiIdentityProviderOut.md | 2 +- .../JsonApiIdentityProviderOutAttributes.md | 3 +- .../JsonApiIdentityProviderOutWithLinks.md | 2 +- .../docs/JsonApiIdentityProviderPatch.md | 2 +- .../JsonApiIdentityProviderPatchAttributes.md | 21 - .../docs/JsonApiLlmEndpointInAttributes.md | 2 +- .../docs/JsonApiLlmEndpointOutAttributes.md | 2 +- .../docs/JsonApiLlmEndpointPatchAttributes.md | 2 +- .../docs/JsonApiOrganizationOutIncludes.md | 2 +- .../docs/LDMDeclarativeAPIsApi.md | 4 +- gooddata-api-client/docs/LayoutApi.md | 75 ++- .../docs/NotificationChannelsApi.md | 163 ++++++ gooddata-api-client/docs/OrganizationApi.md | 77 +++ .../docs/OrganizationDeclarativeAPIsApi.md | 24 +- .../docs/OrganizationModelControllerApi.md | 5 +- .../docs/SwitchIdentityProviderRequest.md | 12 + .../docs/TestDestinationRequest.md | 1 + gooddata-api-client/docs/WebhookMessage.md | 2 +- .../docs/WebhookMessageData.md | 1 + .../docs/WorkspaceObjectControllerApi.md | 57 ++ .../docs/WorkspacesDeclarativeAPIsApi.md | 27 +- .../gooddata_api_client/api/actions_api.py | 132 +++++ .../api/notification_channels_api.py | 308 ++++++++++ .../api/organization_api.py | 170 ++++++ .../gooddata_api_client/apis/__init__.py | 1 + .../model/ad_hoc_automation.py | 8 + .../automation_dashboard_tabular_export.py | 276 +++++++++ ...=> dashboard_tabular_export_request_v2.py} | 120 ++-- .../model/declarative_automation.py | 8 + .../model/declarative_identity_provider.py | 23 +- .../declarative_source_fact_reference.py | 16 +- .../json_api_automation_in_attributes.py | 6 + ...ributes_dashboard_tabular_exports_inner.py | 276 +++++++++ .../json_api_automation_out_attributes.py | 6 + .../model/json_api_identity_provider_in.py | 14 +- ...son_api_identity_provider_in_attributes.py | 27 +- .../model/json_api_identity_provider_out.py | 14 +- ...on_api_identity_provider_out_attributes.py | 27 +- ...on_api_identity_provider_out_with_links.py | 8 +- .../model/json_api_identity_provider_patch.py | 18 +- .../json_api_llm_endpoint_in_attributes.py | 5 +- .../json_api_llm_endpoint_out_attributes.py | 5 +- .../json_api_llm_endpoint_patch_attributes.py | 5 +- .../json_api_organization_out_includes.py | 8 +- .../model/switch_identity_provider_request.py | 270 +++++++++ .../model/test_destination_request.py | 9 + .../model/webhook_message.py | 6 +- .../model/webhook_message_data.py | 4 + .../gooddata_api_client/models/__init__.py | 5 +- schemas/gooddata-api-client.json | 256 ++++++++- schemas/gooddata-automation-client.json | 398 +++++++++++++ schemas/gooddata-export-client.json | 6 + schemas/gooddata-metadata-client.json | 541 +++++++++++++++++- 70 files changed, 3546 insertions(+), 254 deletions(-) create mode 100644 gooddata-api-client/docs/AutomationDashboardTabularExport.md create mode 100644 gooddata-api-client/docs/DashboardTabularExportRequestV2.md create mode 100644 gooddata-api-client/docs/JsonApiAutomationInAttributesDashboardTabularExportsInner.md delete mode 100644 gooddata-api-client/docs/JsonApiIdentityProviderPatchAttributes.md create mode 100644 gooddata-api-client/docs/OrganizationApi.md create mode 100644 gooddata-api-client/docs/SwitchIdentityProviderRequest.md create mode 100644 gooddata-api-client/gooddata_api_client/api/organization_api.py create mode 100644 gooddata-api-client/gooddata_api_client/model/automation_dashboard_tabular_export.py rename gooddata-api-client/gooddata_api_client/model/{json_api_identity_provider_patch_attributes.py => dashboard_tabular_export_request_v2.py} (61%) create mode 100644 gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_dashboard_tabular_exports_inner.py create mode 100644 gooddata-api-client/gooddata_api_client/model/switch_identity_provider_request.py diff --git a/gooddata-api-client/.openapi-generator/FILES b/gooddata-api-client/.openapi-generator/FILES index 33ad92fd5..2b1f6e0dc 100644 --- a/gooddata-api-client/.openapi-generator/FILES +++ b/gooddata-api-client/.openapi-generator/FILES @@ -65,6 +65,7 @@ docs/AttributeResultHeader.md docs/AttributesApi.md docs/AutomationAlert.md docs/AutomationAlertCondition.md +docs/AutomationDashboardTabularExport.md docs/AutomationExternalRecipient.md docs/AutomationImageExport.md docs/AutomationMetadata.md @@ -121,6 +122,7 @@ docs/DashboardPermissions.md docs/DashboardPermissionsAssignment.md docs/DashboardSlidesTemplate.md docs/DashboardTabularExportRequest.md +docs/DashboardTabularExportRequestV2.md docs/DashboardsApi.md docs/DataColumnLocator.md docs/DataColumnLocators.md @@ -370,6 +372,7 @@ docs/JsonApiAttributeToOneLinkage.md docs/JsonApiAutomationIn.md docs/JsonApiAutomationInAttributes.md docs/JsonApiAutomationInAttributesAlert.md +docs/JsonApiAutomationInAttributesDashboardTabularExportsInner.md docs/JsonApiAutomationInAttributesExternalRecipientsInner.md docs/JsonApiAutomationInAttributesImageExportsInner.md docs/JsonApiAutomationInAttributesMetadata.md @@ -571,7 +574,6 @@ docs/JsonApiIdentityProviderOutDocument.md docs/JsonApiIdentityProviderOutList.md docs/JsonApiIdentityProviderOutWithLinks.md docs/JsonApiIdentityProviderPatch.md -docs/JsonApiIdentityProviderPatchAttributes.md docs/JsonApiIdentityProviderPatchDocument.md docs/JsonApiIdentityProviderToOneLinkage.md docs/JsonApiJwkIn.md @@ -842,6 +844,7 @@ docs/NotificationsMetaTotal.md docs/ObjectLinks.md docs/ObjectLinksContainer.md docs/OptionsApi.md +docs/OrganizationApi.md docs/OrganizationControllerApi.md docs/OrganizationDeclarativeAPIsApi.md docs/OrganizationEntityAPIsApi.md @@ -933,6 +936,7 @@ docs/SqlColumn.md docs/SqlQuery.md docs/SqlQueryAllOf.md docs/Suggestion.md +docs/SwitchIdentityProviderRequest.md docs/Table.md docs/TableAllOf.md docs/TableOverride.md @@ -1045,6 +1049,7 @@ gooddata_api_client/api/metadata_sync_api.py gooddata_api_client/api/metrics_api.py gooddata_api_client/api/notification_channels_api.py gooddata_api_client/api/options_api.py +gooddata_api_client/api/organization_api.py gooddata_api_client/api/organization_controller_api.py gooddata_api_client/api/organization_declarative_apis_api.py gooddata_api_client/api/organization_entity_apis_api.py @@ -1139,6 +1144,7 @@ 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_dashboard_tabular_export.py gooddata_api_client/model/automation_external_recipient.py gooddata_api_client/model/automation_image_export.py gooddata_api_client/model/automation_metadata.py @@ -1189,6 +1195,7 @@ gooddata_api_client/model/dashboard_permissions.py gooddata_api_client/model/dashboard_permissions_assignment.py gooddata_api_client/model/dashboard_slides_template.py gooddata_api_client/model/dashboard_tabular_export_request.py +gooddata_api_client/model/dashboard_tabular_export_request_v2.py gooddata_api_client/model/data_column_locator.py gooddata_api_client/model/data_column_locators.py gooddata_api_client/model/data_source_parameter.py @@ -1421,6 +1428,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_dashboard_tabular_exports_inner.py gooddata_api_client/model/json_api_automation_in_attributes_external_recipients_inner.py gooddata_api_client/model/json_api_automation_in_attributes_image_exports_inner.py gooddata_api_client/model/json_api_automation_in_attributes_metadata.py @@ -1622,7 +1630,6 @@ 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_identity_provider_to_one_linkage.py gooddata_api_client/model/json_api_jwk_in.py @@ -1964,6 +1971,7 @@ 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/switch_identity_provider_request.py gooddata_api_client/model/table.py gooddata_api_client/model/table_all_of.py gooddata_api_client/model/table_override.py diff --git a/gooddata-api-client/README.md b/gooddata-api-client/README.md index 8afab9c0d..a5f86a2a6 100644 --- a/gooddata-api-client/README.md +++ b/gooddata-api-client/README.md @@ -246,7 +246,9 @@ Class | Method | HTTP request | Description *MetricsApi* | [**update_entity_metrics**](docs/MetricsApi.md#update_entity_metrics) | **PUT** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} | Put a Metric *NotificationChannelsApi* | [**create_entity_notification_channels**](docs/NotificationChannelsApi.md#create_entity_notification_channels) | **POST** /api/v1/entities/notificationChannels | Post Notification Channel entities *NotificationChannelsApi* | [**delete_entity_notification_channels**](docs/NotificationChannelsApi.md#delete_entity_notification_channels) | **DELETE** /api/v1/entities/notificationChannels/{id} | Delete Notification Channel entity +*NotificationChannelsApi* | [**get_all_entities_notification_channel_identifiers**](docs/NotificationChannelsApi.md#get_all_entities_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers | *NotificationChannelsApi* | [**get_all_entities_notification_channels**](docs/NotificationChannelsApi.md#get_all_entities_notification_channels) | **GET** /api/v1/entities/notificationChannels | Get all Notification Channel entities +*NotificationChannelsApi* | [**get_entity_notification_channel_identifiers**](docs/NotificationChannelsApi.md#get_entity_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers/{id} | *NotificationChannelsApi* | [**get_entity_notification_channels**](docs/NotificationChannelsApi.md#get_entity_notification_channels) | **GET** /api/v1/entities/notificationChannels/{id} | Get Notification Channel entity *NotificationChannelsApi* | [**get_export_templates_layout**](docs/NotificationChannelsApi.md#get_export_templates_layout) | **GET** /api/v1/layout/exportTemplates | Get all export templates layout *NotificationChannelsApi* | [**get_notification_channels_layout**](docs/NotificationChannelsApi.md#get_notification_channels_layout) | **GET** /api/v1/layout/notificationChannels | Get all notification channels layout @@ -260,6 +262,7 @@ Class | Method | HTTP request | Description *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 +*OrganizationApi* | [**switch_active_identity_provider**](docs/OrganizationApi.md#switch_active_identity_provider) | **POST** /api/v1/actions/organization/switchActiveIdentityProvider | Switch Active Identity Provider *OrganizationDeclarativeAPIsApi* | [**get_organization_layout**](docs/OrganizationDeclarativeAPIsApi.md#get_organization_layout) | **GET** /api/v1/layout/organization | Get organization layout *OrganizationDeclarativeAPIsApi* | [**set_organization_layout**](docs/OrganizationDeclarativeAPIsApi.md#set_organization_layout) | **PUT** /api/v1/layout/organization | Set organization layout *OrganizationEntityAPIsApi* | [**create_entity_organization_settings**](docs/OrganizationEntityAPIsApi.md#create_entity_organization_settings) | **POST** /api/v1/entities/organizationSettings | Post Organization Setting entities @@ -469,6 +472,7 @@ Class | Method | HTTP request | Description *ActionsApi* | [**scan_data_source**](docs/ActionsApi.md#scan_data_source) | **POST** /api/v1/actions/dataSources/{dataSourceId}/scan | Scan a database to get a physical data model (PDM) *ActionsApi* | [**scan_sql**](docs/ActionsApi.md#scan_sql) | **POST** /api/v1/actions/dataSources/{dataSourceId}/scanSql | Collect metadata about SQL query *ActionsApi* | [**set_translations**](docs/ActionsApi.md#set_translations) | **POST** /api/v1/actions/workspaces/{workspaceId}/translations/set | Set translations for entities. +*ActionsApi* | [**switch_active_identity_provider**](docs/ActionsApi.md#switch_active_identity_provider) | **POST** /api/v1/actions/organization/switchActiveIdentityProvider | Switch Active Identity Provider *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. @@ -973,6 +977,7 @@ Class | Method | HTTP request | Description - [AttributeResultHeader](docs/AttributeResultHeader.md) - [AutomationAlert](docs/AutomationAlert.md) - [AutomationAlertCondition](docs/AutomationAlertCondition.md) + - [AutomationDashboardTabularExport](docs/AutomationDashboardTabularExport.md) - [AutomationExternalRecipient](docs/AutomationExternalRecipient.md) - [AutomationImageExport](docs/AutomationImageExport.md) - [AutomationMetadata](docs/AutomationMetadata.md) @@ -1023,6 +1028,7 @@ Class | Method | HTTP request | Description - [DashboardPermissionsAssignment](docs/DashboardPermissionsAssignment.md) - [DashboardSlidesTemplate](docs/DashboardSlidesTemplate.md) - [DashboardTabularExportRequest](docs/DashboardTabularExportRequest.md) + - [DashboardTabularExportRequestV2](docs/DashboardTabularExportRequestV2.md) - [DataColumnLocator](docs/DataColumnLocator.md) - [DataColumnLocators](docs/DataColumnLocators.md) - [DataSourceParameter](docs/DataSourceParameter.md) @@ -1255,6 +1261,7 @@ Class | Method | HTTP request | Description - [JsonApiAutomationIn](docs/JsonApiAutomationIn.md) - [JsonApiAutomationInAttributes](docs/JsonApiAutomationInAttributes.md) - [JsonApiAutomationInAttributesAlert](docs/JsonApiAutomationInAttributesAlert.md) + - [JsonApiAutomationInAttributesDashboardTabularExportsInner](docs/JsonApiAutomationInAttributesDashboardTabularExportsInner.md) - [JsonApiAutomationInAttributesExternalRecipientsInner](docs/JsonApiAutomationInAttributesExternalRecipientsInner.md) - [JsonApiAutomationInAttributesImageExportsInner](docs/JsonApiAutomationInAttributesImageExportsInner.md) - [JsonApiAutomationInAttributesMetadata](docs/JsonApiAutomationInAttributesMetadata.md) @@ -1456,7 +1463,6 @@ 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) - [JsonApiIdentityProviderToOneLinkage](docs/JsonApiIdentityProviderToOneLinkage.md) - [JsonApiJwkIn](docs/JsonApiJwkIn.md) @@ -1798,6 +1804,7 @@ Class | Method | HTTP request | Description - [SqlQuery](docs/SqlQuery.md) - [SqlQueryAllOf](docs/SqlQueryAllOf.md) - [Suggestion](docs/Suggestion.md) + - [SwitchIdentityProviderRequest](docs/SwitchIdentityProviderRequest.md) - [Table](docs/Table.md) - [TableAllOf](docs/TableAllOf.md) - [TableOverride](docs/TableOverride.md) diff --git a/gooddata-api-client/docs/ActionsApi.md b/gooddata-api-client/docs/ActionsApi.md index 4b1c55dde..c8ed62b2e 100644 --- a/gooddata-api-client/docs/ActionsApi.md +++ b/gooddata-api-client/docs/ActionsApi.md @@ -74,6 +74,7 @@ Method | HTTP request | Description [**scan_data_source**](ActionsApi.md#scan_data_source) | **POST** /api/v1/actions/dataSources/{dataSourceId}/scan | Scan a database to get a physical data model (PDM) [**scan_sql**](ActionsApi.md#scan_sql) | **POST** /api/v1/actions/dataSources/{dataSourceId}/scanSql | Collect metadata about SQL query [**set_translations**](ActionsApi.md#set_translations) | **POST** /api/v1/actions/workspaces/{workspaceId}/translations/set | Set translations for entities. +[**switch_active_identity_provider**](ActionsApi.md#switch_active_identity_provider) | **POST** /api/v1/actions/organization/switchActiveIdentityProvider | Switch Active Identity Provider [**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. @@ -5625,6 +5626,74 @@ 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) +# **switch_active_identity_provider** +> switch_active_identity_provider(switch_identity_provider_request) + +Switch Active Identity Provider + +Switch the active identity provider for the organization. Requires MANAGE permission on the organization. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from gooddata_api_client.model.switch_identity_provider_request import SwitchIdentityProviderRequest +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) + switch_identity_provider_request = SwitchIdentityProviderRequest( + idp_id="my-idp-123", + ) # SwitchIdentityProviderRequest | + + # example passing only required values which don't have defaults set + try: + # Switch Active Identity Provider + api_instance.switch_active_identity_provider(switch_identity_provider_request) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->switch_active_identity_provider: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **switch_identity_provider_request** | [**SwitchIdentityProviderRequest**](SwitchIdentityProviderRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | 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) + # **test_data_source** > TestResponse test_data_source(data_source_id, test_request) @@ -5827,6 +5896,11 @@ with gooddata_api_client.ApiClient() as api_client: notification_channel_id = "notificationChannelId_example" # str | test_destination_request = TestDestinationRequest( destination=DeclarativeNotificationChannelDestination(None), + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], ) # TestDestinationRequest | (optional) # example passing only required values which don't have defaults set @@ -5907,6 +5981,11 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = actions_api.ActionsApi(api_client) test_destination_request = TestDestinationRequest( destination=DeclarativeNotificationChannelDestination(None), + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], ) # TestDestinationRequest | # example passing only required values which don't have defaults set @@ -6014,6 +6093,25 @@ with gooddata_api_client.ApiClient() as api_client: id="dashboard123", type="analyticalDashboard", ), + dashboard_tabular_exports=[ + AutomationDashboardTabularExport( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details={ "key": "key_example", diff --git a/gooddata-api-client/docs/AdHocAutomation.md b/gooddata-api-client/docs/AdHocAutomation.md index 15f0a5623..260008b58 100644 --- a/gooddata-api-client/docs/AdHocAutomation.md +++ b/gooddata-api-client/docs/AdHocAutomation.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **alert** | [**AutomationAlert**](AutomationAlert.md) | | [optional] **analytical_dashboard** | [**DeclarativeAnalyticalDashboardIdentifier**](DeclarativeAnalyticalDashboardIdentifier.md) | | [optional] +**dashboard_tabular_exports** | [**[AutomationDashboardTabularExport]**](AutomationDashboardTabularExport.md) | | [optional] **description** | **str** | | [optional] **details** | **{str: (str,)}** | Additional details to be included in the automated message. | [optional] **external_recipients** | [**[AutomationExternalRecipient]**](AutomationExternalRecipient.md) | External recipients of the automation action results. | [optional] diff --git a/gooddata-api-client/docs/AutomationDashboardTabularExport.md b/gooddata-api-client/docs/AutomationDashboardTabularExport.md new file mode 100644 index 000000000..cb8fed783 --- /dev/null +++ b/gooddata-api-client/docs/AutomationDashboardTabularExport.md @@ -0,0 +1,12 @@ +# AutomationDashboardTabularExport + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**request_payload** | [**DashboardTabularExportRequestV2**](DashboardTabularExportRequestV2.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/AutomationsApi.md b/gooddata-api-client/docs/AutomationsApi.md index 48de18d04..ceb299e87 100644 --- a/gooddata-api-client/docs/AutomationsApi.md +++ b/gooddata-api-client/docs/AutomationsApi.md @@ -80,6 +80,25 @@ with gooddata_api_client.ApiClient() as api_client: trigger="ALWAYS", ), are_relations_valid=True, + dashboard_tabular_exports=[ + JsonApiAutomationInAttributesDashboardTabularExportsInner( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details=None, external_recipients=[ @@ -736,6 +755,25 @@ with gooddata_api_client.ApiClient() as api_client: trigger="ALWAYS", ), are_relations_valid=True, + dashboard_tabular_exports=[ + JsonApiAutomationInAttributesDashboardTabularExportsInner( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details=None, external_recipients=[ @@ -1059,6 +1097,25 @@ with gooddata_api_client.ApiClient() as api_client: id="employee123", type="user", ), + dashboard_tabular_exports=[ + AutomationDashboardTabularExport( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details={ "key": "key_example", @@ -1357,6 +1414,25 @@ with gooddata_api_client.ApiClient() as api_client: id="dashboard123", type="analyticalDashboard", ), + dashboard_tabular_exports=[ + AutomationDashboardTabularExport( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details={ "key": "key_example", @@ -1700,6 +1776,25 @@ with gooddata_api_client.ApiClient() as api_client: trigger="ALWAYS", ), are_relations_valid=True, + dashboard_tabular_exports=[ + JsonApiAutomationInAttributesDashboardTabularExportsInner( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details=None, external_recipients=[ diff --git a/gooddata-api-client/docs/DashboardTabularExportRequestV2.md b/gooddata-api-client/docs/DashboardTabularExportRequestV2.md new file mode 100644 index 000000000..245472c0c --- /dev/null +++ b/gooddata-api-client/docs/DashboardTabularExportRequestV2.md @@ -0,0 +1,18 @@ +# DashboardTabularExportRequestV2 + +Export request object describing the export properties for dashboard tabular exports (v2 with dashboardId). + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**dashboard_id** | **str** | Dashboard identifier | +**file_name** | **str** | Filename of downloaded file without extension. | +**format** | **str** | Requested tabular export type. | defaults to "XLSX" +**dashboard_filters_override** | [**[DashboardFilter]**](DashboardFilter.md) | List of filters that will be used instead of the default dashboard filters. | [optional] +**settings** | [**DashboardExportSettings**](DashboardExportSettings.md) | | [optional] +**widget_ids** | **[str]** | List of widget identifiers to be exported. Note that only one widget is currently supported. | [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/DeclarativeAutomation.md b/gooddata-api-client/docs/DeclarativeAutomation.md index b7b720e3f..904600994 100644 --- a/gooddata-api-client/docs/DeclarativeAutomation.md +++ b/gooddata-api-client/docs/DeclarativeAutomation.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **analytical_dashboard** | [**DeclarativeAnalyticalDashboardIdentifier**](DeclarativeAnalyticalDashboardIdentifier.md) | | [optional] **created_at** | **str, none_type** | Time of the entity creation. | [optional] **created_by** | [**DeclarativeUserIdentifier**](DeclarativeUserIdentifier.md) | | [optional] +**dashboard_tabular_exports** | [**[AutomationDashboardTabularExport]**](AutomationDashboardTabularExport.md) | | [optional] **description** | **str** | | [optional] **details** | **{str: (str,)}** | TODO | [optional] **export_definitions** | [**[DeclarativeExportDefinitionIdentifier]**](DeclarativeExportDefinitionIdentifier.md) | | [optional] diff --git a/gooddata-api-client/docs/DeclarativeIdentityProvider.md b/gooddata-api-client/docs/DeclarativeIdentityProvider.md index 140ecf7c8..917382884 100644 --- a/gooddata-api-client/docs/DeclarativeIdentityProvider.md +++ b/gooddata-api-client/docs/DeclarativeIdentityProvider.md @@ -6,8 +6,9 @@ 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. | [optional] +**idp_type** | **str** | Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise. | [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_custom_auth_attributes** | **{str: (str,)}** | Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute. | [optional] diff --git a/gooddata-api-client/docs/DeclarativeSourceFactReference.md b/gooddata-api-client/docs/DeclarativeSourceFactReference.md index 26ae957d1..66a8dc4ca 100644 --- a/gooddata-api-client/docs/DeclarativeSourceFactReference.md +++ b/gooddata-api-client/docs/DeclarativeSourceFactReference.md @@ -5,8 +5,8 @@ Aggregated awareness source fact reference. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**id** | [**FactIdentifier**](FactIdentifier.md) | | **operation** | **str** | Aggregation operation. | +**reference** | [**FactIdentifier**](FactIdentifier.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/EntitiesApi.md b/gooddata-api-client/docs/EntitiesApi.md index 94a9587b5..2d36c13ae 100644 --- a/gooddata-api-client/docs/EntitiesApi.md +++ b/gooddata-api-client/docs/EntitiesApi.md @@ -537,6 +537,25 @@ with gooddata_api_client.ApiClient() as api_client: trigger="ALWAYS", ), are_relations_valid=True, + dashboard_tabular_exports=[ + JsonApiAutomationInAttributesDashboardTabularExportsInner( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details=None, external_recipients=[ @@ -1721,6 +1740,7 @@ with gooddata_api_client.ApiClient() as api_client: "key": "key_example", }, identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ @@ -12238,6 +12258,25 @@ with gooddata_api_client.ApiClient() as api_client: trigger="ALWAYS", ), are_relations_valid=True, + dashboard_tabular_exports=[ + JsonApiAutomationInAttributesDashboardTabularExportsInner( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details=None, external_recipients=[ @@ -13548,11 +13587,12 @@ with gooddata_api_client.ApiClient() as api_client: id = "/6bUUGjjNSwg0_bs" # str | json_api_identity_provider_patch_document = JsonApiIdentityProviderPatchDocument( data=JsonApiIdentityProviderPatch( - attributes=JsonApiIdentityProviderPatchAttributes( + attributes=JsonApiIdentityProviderInAttributes( custom_claim_mapping={ "key": "key_example", }, identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ @@ -15375,6 +15415,25 @@ with gooddata_api_client.ApiClient() as api_client: trigger="ALWAYS", ), are_relations_valid=True, + dashboard_tabular_exports=[ + JsonApiAutomationInAttributesDashboardTabularExportsInner( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details=None, external_recipients=[ @@ -16690,6 +16749,7 @@ with gooddata_api_client.ApiClient() as api_client: "key": "key_example", }, identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ diff --git a/gooddata-api-client/docs/IdentityProvidersApi.md b/gooddata-api-client/docs/IdentityProvidersApi.md index db5be5f54..65a2ab9ba 100644 --- a/gooddata-api-client/docs/IdentityProvidersApi.md +++ b/gooddata-api-client/docs/IdentityProvidersApi.md @@ -47,6 +47,7 @@ with gooddata_api_client.ApiClient() as api_client: "key": "key_example", }, identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ @@ -422,11 +423,12 @@ with gooddata_api_client.ApiClient() as api_client: id = "/6bUUGjjNSwg0_bs" # str | json_api_identity_provider_patch_document = JsonApiIdentityProviderPatchDocument( data=JsonApiIdentityProviderPatch( - attributes=JsonApiIdentityProviderPatchAttributes( + attributes=JsonApiIdentityProviderInAttributes( custom_claim_mapping={ "key": "key_example", }, identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ @@ -529,6 +531,7 @@ with gooddata_api_client.ApiClient() as api_client: }, id="filterView-1", identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ @@ -615,6 +618,7 @@ with gooddata_api_client.ApiClient() as api_client: "key": "key_example", }, identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ diff --git a/gooddata-api-client/docs/JsonApiAutomationInAttributes.md b/gooddata-api-client/docs/JsonApiAutomationInAttributes.md index e80d30d92..1544e18dd 100644 --- a/gooddata-api-client/docs/JsonApiAutomationInAttributes.md +++ b/gooddata-api-client/docs/JsonApiAutomationInAttributes.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **alert** | [**JsonApiAutomationInAttributesAlert**](JsonApiAutomationInAttributesAlert.md) | | [optional] **are_relations_valid** | **bool** | | [optional] +**dashboard_tabular_exports** | [**[JsonApiAutomationInAttributesDashboardTabularExportsInner]**](JsonApiAutomationInAttributesDashboardTabularExportsInner.md) | | [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] diff --git a/gooddata-api-client/docs/JsonApiAutomationInAttributesDashboardTabularExportsInner.md b/gooddata-api-client/docs/JsonApiAutomationInAttributesDashboardTabularExportsInner.md new file mode 100644 index 000000000..9b1aa1d18 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiAutomationInAttributesDashboardTabularExportsInner.md @@ -0,0 +1,12 @@ +# JsonApiAutomationInAttributesDashboardTabularExportsInner + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**request_payload** | [**DashboardTabularExportRequestV2**](DashboardTabularExportRequestV2.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/JsonApiAutomationOutAttributes.md b/gooddata-api-client/docs/JsonApiAutomationOutAttributes.md index 19520f829..99293a869 100644 --- a/gooddata-api-client/docs/JsonApiAutomationOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiAutomationOutAttributes.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes **alert** | [**JsonApiAutomationInAttributesAlert**](JsonApiAutomationInAttributesAlert.md) | | [optional] **are_relations_valid** | **bool** | | [optional] **created_at** | **datetime** | | [optional] +**dashboard_tabular_exports** | [**[JsonApiAutomationInAttributesDashboardTabularExportsInner]**](JsonApiAutomationInAttributesDashboardTabularExportsInner.md) | | [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] diff --git a/gooddata-api-client/docs/JsonApiIdentityProviderIn.md b/gooddata-api-client/docs/JsonApiIdentityProviderIn.md index bfe50f746..93a68e92c 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 9f3101058..b5839c4d8 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderInAttributes.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderInAttributes.md @@ -4,8 +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). 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. | [optional] +**idp_type** | **str** | Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise. | [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_custom_auth_attributes** | **{str: (str,)}** | Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute. | [optional] diff --git a/gooddata-api-client/docs/JsonApiIdentityProviderOut.md b/gooddata-api-client/docs/JsonApiIdentityProviderOut.md index 45608885c..f473f8b7a 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 055657710..472827c17 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderOutAttributes.md @@ -4,8 +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). 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. | [optional] +**idp_type** | **str** | Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise. | [optional] **oauth_client_id** | **str** | The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP. | [optional] **oauth_custom_auth_attributes** | **{str: (str,)}** | Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute. | [optional] **oauth_custom_scopes** | **[str], none_type** | List of additional OAuth scopes which may be required by other providers (e.g. Snowflake) | [optional] diff --git a/gooddata-api-client/docs/JsonApiIdentityProviderOutWithLinks.md b/gooddata-api-client/docs/JsonApiIdentityProviderOutWithLinks.md index c459d05e0..8b0d1468c 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 b4d1f99b5..eb78ac3da 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 deleted file mode 100644 index 0ec1f42e7..000000000 --- a/gooddata-api-client/docs/JsonApiIdentityProviderPatchAttributes.md +++ /dev/null @@ -1,21 +0,0 @@ -# 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). 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_custom_auth_attributes** | **{str: (str,)}** | Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute. | [optional] -**oauth_custom_scopes** | **[str], none_type** | List of additional OAuth scopes which may be required by other providers (e.g. Snowflake) | [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] -**oauth_subject_id_claim** | **str** | Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'. | [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 2f8a3840a..d2a0dd9f3 100644 --- a/gooddata-api-client/docs/JsonApiLlmEndpointInAttributes.md +++ b/gooddata-api-client/docs/JsonApiLlmEndpointInAttributes.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes **base_url** | **str, none_type** | Custom LLM endpoint. | [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" +**provider** | **str** | LLM Provider. | [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 aa8449680..d2f81eaa6 100644 --- a/gooddata-api-client/docs/JsonApiLlmEndpointOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiLlmEndpointOutAttributes.md @@ -8,7 +8,7 @@ Name | Type | Description | Notes **base_url** | **str, none_type** | Custom LLM endpoint. | [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" +**provider** | **str** | LLM Provider. | [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 b4c0f83db..e08b20742 100644 --- a/gooddata-api-client/docs/JsonApiLlmEndpointPatchAttributes.md +++ b/gooddata-api-client/docs/JsonApiLlmEndpointPatchAttributes.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes **base_url** | **str, none_type** | Custom LLM endpoint. | [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" +**provider** | **str** | LLM Provider. | [optional] **title** | **str** | User-facing title of the LLM Provider. | [optional] **token** | **str** | The token to use to connect to the LLM provider. | [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/JsonApiOrganizationOutIncludes.md b/gooddata-api-client/docs/JsonApiOrganizationOutIncludes.md index 2c71fb0bb..e6a140838 100644 --- a/gooddata-api-client/docs/JsonApiOrganizationOutIncludes.md +++ b/gooddata-api-client/docs/JsonApiOrganizationOutIncludes.md @@ -4,9 +4,9 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**attributes** | [**JsonApiIdentityProviderOutAttributes**](JsonApiIdentityProviderOutAttributes.md) | | [optional] **relationships** | [**JsonApiUserGroupInRelationships**](JsonApiUserGroupInRelationships.md) | | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] -**attributes** | [**JsonApiIdentityProviderOutAttributes**](JsonApiIdentityProviderOutAttributes.md) | | [optional] **id** | **str** | API identifier of an object | [optional] **type** | **str** | Object type | [optional] if omitted the server will use the default value of "identityProvider" **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/LDMDeclarativeAPIsApi.md b/gooddata-api-client/docs/LDMDeclarativeAPIsApi.md index c84bd8b63..72c71fc15 100644 --- a/gooddata-api-client/docs/LDMDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/LDMDeclarativeAPIsApi.md @@ -174,11 +174,11 @@ with gooddata_api_client.ApiClient() as api_client: source_column="customer_order_count", source_column_data_type="NUMERIC", source_fact_reference=DeclarativeSourceFactReference( - id=FactIdentifier( + operation="SUM", + reference=FactIdentifier( id="fact_id", type="fact", ), - operation="SUM", ), tags=["Customers"], title="Customer order count", diff --git a/gooddata-api-client/docs/LayoutApi.md b/gooddata-api-client/docs/LayoutApi.md index e9941b604..02f4f2bd9 100644 --- a/gooddata-api-client/docs/LayoutApi.md +++ b/gooddata-api-client/docs/LayoutApi.md @@ -2123,11 +2123,11 @@ with gooddata_api_client.ApiClient() as api_client: source_column="customer_order_count", source_column_data_type="NUMERIC", source_fact_reference=DeclarativeSourceFactReference( - id=FactIdentifier( + operation="SUM", + reference=FactIdentifier( id="fact_id", type="fact", ), - operation="SUM", ), tags=["Customers"], title="Customer order count", @@ -2521,6 +2521,25 @@ with gooddata_api_client.ApiClient() as api_client: id="employee123", type="user", ), + dashboard_tabular_exports=[ + AutomationDashboardTabularExport( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details={ "key": "key_example", @@ -3091,6 +3110,7 @@ with gooddata_api_client.ApiClient() as api_client: }, id="filterView-1", identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ @@ -3231,11 +3251,11 @@ with gooddata_api_client.ApiClient() as api_client: source_column="customer_order_count", source_column_data_type="NUMERIC", source_fact_reference=DeclarativeSourceFactReference( - id=FactIdentifier( + operation="SUM", + reference=FactIdentifier( id="fact_id", type="fact", ), - operation="SUM", ), tags=["Customers"], title="Customer order count", @@ -3579,6 +3599,7 @@ with gooddata_api_client.ApiClient() as api_client: }, id="filterView-1", identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ @@ -3799,6 +3820,25 @@ with gooddata_api_client.ApiClient() as api_client: id="employee123", type="user", ), + dashboard_tabular_exports=[ + AutomationDashboardTabularExport( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details={ "key": "key_example", @@ -4236,11 +4276,11 @@ with gooddata_api_client.ApiClient() as api_client: source_column="customer_order_count", source_column_data_type="NUMERIC", source_fact_reference=DeclarativeSourceFactReference( - id=FactIdentifier( + operation="SUM", + reference=FactIdentifier( id="fact_id", type="fact", ), - operation="SUM", ), tags=["Customers"], title="Customer order count", @@ -4990,6 +5030,25 @@ with gooddata_api_client.ApiClient() as api_client: id="employee123", type="user", ), + dashboard_tabular_exports=[ + AutomationDashboardTabularExport( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details={ "key": "key_example", @@ -5427,11 +5486,11 @@ with gooddata_api_client.ApiClient() as api_client: source_column="customer_order_count", source_column_data_type="NUMERIC", source_fact_reference=DeclarativeSourceFactReference( - id=FactIdentifier( + operation="SUM", + reference=FactIdentifier( id="fact_id", type="fact", ), - operation="SUM", ), tags=["Customers"], title="Customer order count", diff --git a/gooddata-api-client/docs/NotificationChannelsApi.md b/gooddata-api-client/docs/NotificationChannelsApi.md index 20c8130d0..da32b47e4 100644 --- a/gooddata-api-client/docs/NotificationChannelsApi.md +++ b/gooddata-api-client/docs/NotificationChannelsApi.md @@ -6,7 +6,9 @@ Method | HTTP request | Description ------------- | ------------- | ------------- [**create_entity_notification_channels**](NotificationChannelsApi.md#create_entity_notification_channels) | **POST** /api/v1/entities/notificationChannels | Post Notification Channel entities [**delete_entity_notification_channels**](NotificationChannelsApi.md#delete_entity_notification_channels) | **DELETE** /api/v1/entities/notificationChannels/{id} | Delete Notification Channel entity +[**get_all_entities_notification_channel_identifiers**](NotificationChannelsApi.md#get_all_entities_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers | [**get_all_entities_notification_channels**](NotificationChannelsApi.md#get_all_entities_notification_channels) | **GET** /api/v1/entities/notificationChannels | Get all Notification Channel entities +[**get_entity_notification_channel_identifiers**](NotificationChannelsApi.md#get_entity_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers/{id} | [**get_entity_notification_channels**](NotificationChannelsApi.md#get_entity_notification_channels) | **GET** /api/v1/entities/notificationChannels/{id} | Get Notification Channel entity [**get_export_templates_layout**](NotificationChannelsApi.md#get_export_templates_layout) | **GET** /api/v1/layout/exportTemplates | Get all export templates layout [**get_notification_channels_layout**](NotificationChannelsApi.md#get_notification_channels_layout) | **GET** /api/v1/layout/notificationChannels | Get all notification channels layout @@ -175,6 +177,83 @@ No authorization required [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **get_all_entities_notification_channel_identifiers** +> JsonApiNotificationChannelIdentifierOutList get_all_entities_notification_channel_identifiers() + + + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import notification_channels_api +from gooddata_api_client.model.json_api_notification_channel_identifier_out_list import JsonApiNotificationChannelIdentifierOutList +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) + filter = "filter=name==someString;description==someString" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + page = 0 # int | Zero-based page index (0..N) (optional) if omitted the server will use the default value of 0 + size = 20 # int | The size of the page to be returned (optional) if omitted the server will use the default value of 20 + sort = [ + "sort_example", + ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional) + meta_include = [ + "metaInclude=page,all", + ] # [str] | Include Meta objects. (optional) + + # example passing only required values which don't have defaults set + # and optional values + try: + api_response = api_instance.get_all_entities_notification_channel_identifiers(filter=filter, page=page, size=size, sort=sort, meta_include=meta_include) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling NotificationChannelsApi->get_all_entities_notification_channel_identifiers: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + **page** | **int**| Zero-based page index (0..N) | [optional] if omitted the server will use the default value of 0 + **size** | **int**| The size of the page to be returned | [optional] if omitted the server will use the default value of 20 + **sort** | **[str]**| Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. | [optional] + **meta_include** | **[str]**| Include Meta objects. | [optional] + +### Return type + +[**JsonApiNotificationChannelIdentifierOutList**](JsonApiNotificationChannelIdentifierOutList.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.gooddata.api+json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **get_all_entities_notification_channels** > JsonApiNotificationChannelOutList get_all_entities_notification_channels() @@ -245,6 +324,80 @@ No authorization required - **Accept**: application/vnd.gooddata.api+json +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Request successfully processed | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_entity_notification_channel_identifiers** +> JsonApiNotificationChannelIdentifierOutDocument get_entity_notification_channel_identifiers(id) + + + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import notification_channels_api +from gooddata_api_client.model.json_api_notification_channel_identifier_out_document import JsonApiNotificationChannelIdentifierOutDocument +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) + id = "/6bUUGjjNSwg0_bs" # str | + filter = "filter=name==someString;description==someString" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + + # example passing only required values which don't have defaults set + try: + api_response = api_instance.get_entity_notification_channel_identifiers(id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling NotificationChannelsApi->get_entity_notification_channel_identifiers: %s\n" % e) + + # example passing only required values which don't have defaults set + # and optional values + try: + api_response = api_instance.get_entity_notification_channel_identifiers(id, filter=filter) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling NotificationChannelsApi->get_entity_notification_channel_identifiers: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **id** | **str**| | + **filter** | **str**| Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). | [optional] + +### Return type + +[**JsonApiNotificationChannelIdentifierOutDocument**](JsonApiNotificationChannelIdentifierOutDocument.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.gooddata.api+json + + ### HTTP response details | Status code | Description | Response headers | @@ -1009,6 +1162,11 @@ with gooddata_api_client.ApiClient() as api_client: notification_channel_id = "notificationChannelId_example" # str | test_destination_request = TestDestinationRequest( destination=DeclarativeNotificationChannelDestination(None), + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], ) # TestDestinationRequest | (optional) # example passing only required values which don't have defaults set @@ -1089,6 +1247,11 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = notification_channels_api.NotificationChannelsApi(api_client) test_destination_request = TestDestinationRequest( destination=DeclarativeNotificationChannelDestination(None), + external_recipients=[ + AutomationExternalRecipient( + email="email_example", + ), + ], ) # TestDestinationRequest | # example passing only required values which don't have defaults set diff --git a/gooddata-api-client/docs/OrganizationApi.md b/gooddata-api-client/docs/OrganizationApi.md new file mode 100644 index 000000000..a16d1304c --- /dev/null +++ b/gooddata-api-client/docs/OrganizationApi.md @@ -0,0 +1,77 @@ +# gooddata_api_client.OrganizationApi + +All URIs are relative to *http://localhost* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**switch_active_identity_provider**](OrganizationApi.md#switch_active_identity_provider) | **POST** /api/v1/actions/organization/switchActiveIdentityProvider | Switch Active Identity Provider + + +# **switch_active_identity_provider** +> switch_active_identity_provider(switch_identity_provider_request) + +Switch Active Identity Provider + +Switch the active identity provider for the organization. Requires MANAGE permission on the organization. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import organization_api +from gooddata_api_client.model.switch_identity_provider_request import SwitchIdentityProviderRequest +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 = organization_api.OrganizationApi(api_client) + switch_identity_provider_request = SwitchIdentityProviderRequest( + idp_id="my-idp-123", + ) # SwitchIdentityProviderRequest | + + # example passing only required values which don't have defaults set + try: + # Switch Active Identity Provider + api_instance.switch_active_identity_provider(switch_identity_provider_request) + except gooddata_api_client.ApiException as e: + print("Exception when calling OrganizationApi->switch_active_identity_provider: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **switch_identity_provider_request** | [**SwitchIdentityProviderRequest**](SwitchIdentityProviderRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | 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) + diff --git a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md index 2325a1c85..16f604c83 100644 --- a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md @@ -225,6 +225,7 @@ with gooddata_api_client.ApiClient() as api_client: }, id="filterView-1", identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ @@ -445,6 +446,25 @@ with gooddata_api_client.ApiClient() as api_client: id="employee123", type="user", ), + dashboard_tabular_exports=[ + AutomationDashboardTabularExport( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details={ "key": "key_example", @@ -882,11 +902,11 @@ with gooddata_api_client.ApiClient() as api_client: source_column="customer_order_count", source_column_data_type="NUMERIC", source_fact_reference=DeclarativeSourceFactReference( - id=FactIdentifier( + operation="SUM", + reference=FactIdentifier( id="fact_id", type="fact", ), - operation="SUM", ), tags=["Customers"], title="Customer order count", diff --git a/gooddata-api-client/docs/OrganizationModelControllerApi.md b/gooddata-api-client/docs/OrganizationModelControllerApi.md index 8ec2d361b..9b360c423 100644 --- a/gooddata-api-client/docs/OrganizationModelControllerApi.md +++ b/gooddata-api-client/docs/OrganizationModelControllerApi.md @@ -525,6 +525,7 @@ with gooddata_api_client.ApiClient() as api_client: "key": "key_example", }, identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ @@ -5389,11 +5390,12 @@ with gooddata_api_client.ApiClient() as api_client: id = "/6bUUGjjNSwg0_bs" # str | json_api_identity_provider_patch_document = JsonApiIdentityProviderPatchDocument( data=JsonApiIdentityProviderPatch( - attributes=JsonApiIdentityProviderPatchAttributes( + attributes=JsonApiIdentityProviderInAttributes( custom_claim_mapping={ "key": "key_example", }, identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ @@ -6706,6 +6708,7 @@ with gooddata_api_client.ApiClient() as api_client: "key": "key_example", }, identifiers=["gooddata.com"], + idp_type="MANAGED_IDP", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", oauth_custom_auth_attributes={ diff --git a/gooddata-api-client/docs/SwitchIdentityProviderRequest.md b/gooddata-api-client/docs/SwitchIdentityProviderRequest.md new file mode 100644 index 000000000..88db80908 --- /dev/null +++ b/gooddata-api-client/docs/SwitchIdentityProviderRequest.md @@ -0,0 +1,12 @@ +# SwitchIdentityProviderRequest + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**idp_id** | **str** | Identity provider ID to set as active for the organization. | +**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 index 47493a751..16fd8e55d 100644 --- a/gooddata-api-client/docs/TestDestinationRequest.md +++ b/gooddata-api-client/docs/TestDestinationRequest.md @@ -6,6 +6,7 @@ Request body with notification channel destination to test. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **destination** | [**DeclarativeNotificationChannelDestination**](DeclarativeNotificationChannelDestination.md) | | +**external_recipients** | [**[AutomationExternalRecipient], none_type**](AutomationExternalRecipient.md) | External recipients of the test 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] [[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 index a830c99d9..0b16f2662 100644 --- a/gooddata-api-client/docs/WebhookMessage.md +++ b/gooddata-api-client/docs/WebhookMessage.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data** | [**WebhookMessageData**](WebhookMessageData.md) | | -**timestamp** | **str** | | +**timestamp** | **datetime** | | **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] diff --git a/gooddata-api-client/docs/WebhookMessageData.md b/gooddata-api-client/docs/WebhookMessageData.md index 60bee5e79..1c2a792f0 100644 --- a/gooddata-api-client/docs/WebhookMessageData.md +++ b/gooddata-api-client/docs/WebhookMessageData.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **automation** | [**WebhookAutomationInfo**](WebhookAutomationInfo.md) | | **alert** | [**AlertDescription**](AlertDescription.md) | | [optional] +**dashboard_tabular_exports** | [**[ExportResult]**](ExportResult.md) | | [optional] **details** | **{str: (str,)}** | | [optional] **filters** | [**[NotificationFilter]**](NotificationFilter.md) | | [optional] **image_exports** | [**[ExportResult]**](ExportResult.md) | | [optional] diff --git a/gooddata-api-client/docs/WorkspaceObjectControllerApi.md b/gooddata-api-client/docs/WorkspaceObjectControllerApi.md index c87f42d9f..f647dfbb6 100644 --- a/gooddata-api-client/docs/WorkspaceObjectControllerApi.md +++ b/gooddata-api-client/docs/WorkspaceObjectControllerApi.md @@ -360,6 +360,25 @@ with gooddata_api_client.ApiClient() as api_client: trigger="ALWAYS", ), are_relations_valid=True, + dashboard_tabular_exports=[ + JsonApiAutomationInAttributesDashboardTabularExportsInner( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details=None, external_recipients=[ @@ -6321,6 +6340,25 @@ with gooddata_api_client.ApiClient() as api_client: trigger="ALWAYS", ), are_relations_valid=True, + dashboard_tabular_exports=[ + JsonApiAutomationInAttributesDashboardTabularExportsInner( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details=None, external_recipients=[ @@ -7943,6 +7981,25 @@ with gooddata_api_client.ApiClient() as api_client: trigger="ALWAYS", ), are_relations_valid=True, + dashboard_tabular_exports=[ + JsonApiAutomationInAttributesDashboardTabularExportsInner( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details=None, external_recipients=[ diff --git a/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md b/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md index 724b1c08f..fd982f5bd 100644 --- a/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md @@ -384,11 +384,11 @@ with gooddata_api_client.ApiClient() as api_client: source_column="customer_order_count", source_column_data_type="NUMERIC", source_fact_reference=DeclarativeSourceFactReference( - id=FactIdentifier( + operation="SUM", + reference=FactIdentifier( id="fact_id", type="fact", ), - operation="SUM", ), tags=["Customers"], title="Customer order count", @@ -603,6 +603,25 @@ with gooddata_api_client.ApiClient() as api_client: id="employee123", type="user", ), + dashboard_tabular_exports=[ + AutomationDashboardTabularExport( + request_payload=DashboardTabularExportRequestV2( + dashboard_filters_override=[ + DashboardFilter(), + ], + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="result", + format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], description="description_example", details={ "key": "key_example", @@ -1040,11 +1059,11 @@ with gooddata_api_client.ApiClient() as api_client: source_column="customer_order_count", source_column_data_type="NUMERIC", source_fact_reference=DeclarativeSourceFactReference( - id=FactIdentifier( + operation="SUM", + reference=FactIdentifier( id="fact_id", type="fact", ), - operation="SUM", ), tags=["Customers"], title="Customer order count", 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 35cf5b5d6..81403908a 100644 --- a/gooddata-api-client/gooddata_api_client/api/actions_api.py +++ b/gooddata-api-client/gooddata_api_client/api/actions_api.py @@ -82,6 +82,7 @@ from gooddata_api_client.model.search_result import SearchResult from gooddata_api_client.model.slides_export_request import SlidesExportRequest from gooddata_api_client.model.smart_function_response import SmartFunctionResponse +from gooddata_api_client.model.switch_identity_provider_request import SwitchIdentityProviderRequest 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 @@ -4221,6 +4222,54 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.switch_active_identity_provider_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/actions/organization/switchActiveIdentityProvider', + 'operation_id': 'switch_active_identity_provider', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'switch_identity_provider_request', + ], + 'required': [ + 'switch_identity_provider_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'switch_identity_provider_request': + (SwitchIdentityProviderRequest,), + }, + 'attribute_map': { + }, + 'location_map': { + 'switch_identity_provider_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) self.test_data_source_endpoint = _Endpoint( settings={ 'response_type': (TestResponse,), @@ -10813,6 +10862,89 @@ def set_translations( xliff return self.set_translations_endpoint.call_with_http_info(**kwargs) + def switch_active_identity_provider( + self, + switch_identity_provider_request, + **kwargs + ): + """Switch Active Identity Provider # noqa: E501 + + Switch the active identity provider for the organization. Requires MANAGE permission on the organization. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.switch_active_identity_provider(switch_identity_provider_request, async_req=True) + >>> result = thread.get() + + Args: + switch_identity_provider_request (SwitchIdentityProviderRequest): + + 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['switch_identity_provider_request'] = \ + switch_identity_provider_request + return self.switch_active_identity_provider_endpoint.call_with_http_info(**kwargs) + def test_data_source( self, data_source_id, diff --git a/gooddata-api-client/gooddata_api_client/api/notification_channels_api.py b/gooddata-api-client/gooddata_api_client/api/notification_channels_api.py index 89911d595..b542a3ae7 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 @@ -24,6 +24,8 @@ ) from gooddata_api_client.model.declarative_export_templates import DeclarativeExportTemplates from gooddata_api_client.model.declarative_notification_channels import DeclarativeNotificationChannels +from gooddata_api_client.model.json_api_notification_channel_identifier_out_document import JsonApiNotificationChannelIdentifierOutDocument +from gooddata_api_client.model.json_api_notification_channel_identifier_out_list import JsonApiNotificationChannelIdentifierOutList from gooddata_api_client.model.json_api_notification_channel_in_document import JsonApiNotificationChannelInDocument 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 @@ -154,6 +156,86 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.get_all_entities_notification_channel_identifiers_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiNotificationChannelIdentifierOutList,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/notificationChannelIdentifiers', + 'operation_id': 'get_all_entities_notification_channel_identifiers', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'filter', + 'page', + 'size', + 'sort', + 'meta_include', + ], + 'required': [], + 'nullable': [ + ], + 'enum': [ + 'meta_include', + ], + 'validation': [ + 'meta_include', + ] + }, + root_map={ + 'validations': { + ('meta_include',): { + + }, + }, + 'allowed_values': { + ('meta_include',): { + + "PAGE": "page", + "ALL": "all", + "ALL": "ALL" + }, + }, + 'openapi_types': { + 'filter': + (str,), + 'page': + (int,), + 'size': + (int,), + 'sort': + ([str],), + 'meta_include': + ([str],), + }, + 'attribute_map': { + 'filter': 'filter', + 'page': 'page', + 'size': 'size', + 'sort': 'sort', + 'meta_include': 'metaInclude', + }, + 'location_map': { + 'filter': 'query', + 'page': 'query', + 'size': 'query', + 'sort': 'query', + 'meta_include': 'query', + }, + 'collection_format_map': { + 'sort': 'multi', + 'meta_include': 'csv', + } + }, + headers_map={ + 'accept': [ + 'application/vnd.gooddata.api+json' + ], + 'content_type': [], + }, + api_client=api_client + ) self.get_all_entities_notification_channels_endpoint = _Endpoint( settings={ 'response_type': (JsonApiNotificationChannelOutList,), @@ -234,6 +316,67 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.get_entity_notification_channel_identifiers_endpoint = _Endpoint( + settings={ + 'response_type': (JsonApiNotificationChannelIdentifierOutDocument,), + 'auth': [], + 'endpoint_path': '/api/v1/entities/notificationChannelIdentifiers/{id}', + 'operation_id': 'get_entity_notification_channel_identifiers', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'id', + 'filter', + ], + 'required': [ + 'id', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + 'id', + ] + }, + root_map={ + 'validations': { + ('id',): { + + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + }, + 'allowed_values': { + }, + 'openapi_types': { + 'id': + (str,), + 'filter': + (str,), + }, + 'attribute_map': { + 'id': 'id', + 'filter': 'filter', + }, + 'location_map': { + 'id': 'path', + 'filter': 'query', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/vnd.gooddata.api+json' + ], + 'content_type': [], + }, + api_client=api_client + ) self.get_entity_notification_channels_endpoint = _Endpoint( settings={ 'response_type': (JsonApiNotificationChannelOutDocument,), @@ -1060,6 +1203,88 @@ def delete_entity_notification_channels( id return self.delete_entity_notification_channels_endpoint.call_with_http_info(**kwargs) + def get_all_entities_notification_channel_identifiers( + self, + **kwargs + ): + """get_all_entities_notification_channel_identifiers # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.get_all_entities_notification_channel_identifiers(async_req=True) + >>> result = thread.get() + + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + page (int): Zero-based page index (0..N). [optional] if omitted the server will use the default value of 0 + size (int): The size of the page to be returned. [optional] if omitted the server will use the default value of 20 + sort ([str]): Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.. [optional] + meta_include ([str]): Include Meta objects.. [optional] + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + JsonApiNotificationChannelIdentifierOutList + 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_all_entities_notification_channel_identifiers_endpoint.call_with_http_info(**kwargs) + def get_all_entities_notification_channels( self, **kwargs @@ -1142,6 +1367,89 @@ def get_all_entities_notification_channels( kwargs['_request_auths'] = kwargs.get('_request_auths', None) return self.get_all_entities_notification_channels_endpoint.call_with_http_info(**kwargs) + def get_entity_notification_channel_identifiers( + self, + id, + **kwargs + ): + """get_entity_notification_channel_identifiers # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.get_entity_notification_channel_identifiers(id, async_req=True) + >>> result = thread.get() + + Args: + id (str): + + Keyword Args: + filter (str): Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').. [optional] + _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: + JsonApiNotificationChannelIdentifierOutDocument + 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['id'] = \ + id + return self.get_entity_notification_channel_identifiers_endpoint.call_with_http_info(**kwargs) + def get_entity_notification_channels( self, id, diff --git a/gooddata-api-client/gooddata_api_client/api/organization_api.py b/gooddata-api-client/gooddata_api_client/api/organization_api.py new file mode 100644 index 000000000..cf97d961c --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/api/organization_api.py @@ -0,0 +1,170 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.api_client import ApiClient, Endpoint as _Endpoint +from gooddata_api_client.model_utils import ( # noqa: F401 + check_allowed_values, + check_validations, + date, + datetime, + file_type, + none_type, + validate_and_convert_types +) +from gooddata_api_client.model.switch_identity_provider_request import SwitchIdentityProviderRequest + + +class OrganizationApi(object): + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None): + if api_client is None: + api_client = ApiClient() + self.api_client = api_client + self.switch_active_identity_provider_endpoint = _Endpoint( + settings={ + 'response_type': None, + 'auth': [], + 'endpoint_path': '/api/v1/actions/organization/switchActiveIdentityProvider', + 'operation_id': 'switch_active_identity_provider', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'switch_identity_provider_request', + ], + 'required': [ + 'switch_identity_provider_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'switch_identity_provider_request': + (SwitchIdentityProviderRequest,), + }, + 'attribute_map': { + }, + 'location_map': { + 'switch_identity_provider_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) + + def switch_active_identity_provider( + self, + switch_identity_provider_request, + **kwargs + ): + """Switch Active Identity Provider # noqa: E501 + + Switch the active identity provider for the organization. Requires MANAGE permission on the organization. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.switch_active_identity_provider(switch_identity_provider_request, async_req=True) + >>> result = thread.get() + + Args: + switch_identity_provider_request (SwitchIdentityProviderRequest): + + 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['switch_identity_provider_request'] = \ + switch_identity_provider_request + return self.switch_active_identity_provider_endpoint.call_with_http_info(**kwargs) + diff --git a/gooddata-api-client/gooddata_api_client/apis/__init__.py b/gooddata-api-client/gooddata_api_client/apis/__init__.py index 687fefdab..77998014c 100644 --- a/gooddata-api-client/gooddata_api_client/apis/__init__.py +++ b/gooddata-api-client/gooddata_api_client/apis/__init__.py @@ -50,6 +50,7 @@ from gooddata_api_client.api.metrics_api import MetricsApi from gooddata_api_client.api.notification_channels_api import NotificationChannelsApi from gooddata_api_client.api.options_api import OptionsApi +from gooddata_api_client.api.organization_api import OrganizationApi from gooddata_api_client.api.organization_declarative_apis_api import OrganizationDeclarativeAPIsApi from gooddata_api_client.api.organization_entity_apis_api import OrganizationEntityAPIsApi from gooddata_api_client.api.permissions_api import PermissionsApi diff --git a/gooddata-api-client/gooddata_api_client/model/ad_hoc_automation.py b/gooddata-api-client/gooddata_api_client/model/ad_hoc_automation.py index 01a594a39..cdd425715 100644 --- a/gooddata-api-client/gooddata_api_client/model/ad_hoc_automation.py +++ b/gooddata-api-client/gooddata_api_client/model/ad_hoc_automation.py @@ -32,6 +32,7 @@ def lazy_import(): from gooddata_api_client.model.automation_alert import AutomationAlert + from gooddata_api_client.model.automation_dashboard_tabular_export import AutomationDashboardTabularExport from gooddata_api_client.model.automation_external_recipient import AutomationExternalRecipient from gooddata_api_client.model.automation_image_export import AutomationImageExport from gooddata_api_client.model.automation_metadata import AutomationMetadata @@ -43,6 +44,7 @@ def lazy_import(): from gooddata_api_client.model.declarative_notification_channel_identifier import DeclarativeNotificationChannelIdentifier from gooddata_api_client.model.declarative_user_identifier import DeclarativeUserIdentifier globals()['AutomationAlert'] = AutomationAlert + globals()['AutomationDashboardTabularExport'] = AutomationDashboardTabularExport globals()['AutomationExternalRecipient'] = AutomationExternalRecipient globals()['AutomationImageExport'] = AutomationImageExport globals()['AutomationMetadata'] = AutomationMetadata @@ -83,6 +85,8 @@ class AdHocAutomation(ModelNormal): } validations = { + ('dashboard_tabular_exports',): { + }, ('description',): { 'max_length': 255, }, @@ -134,6 +138,7 @@ def openapi_types(): return { 'alert': (AutomationAlert,), # noqa: E501 'analytical_dashboard': (DeclarativeAnalyticalDashboardIdentifier,), # noqa: E501 + 'dashboard_tabular_exports': ([AutomationDashboardTabularExport],), # noqa: E501 'description': (str,), # noqa: E501 'details': ({str: (str,)},), # noqa: E501 'external_recipients': ([AutomationExternalRecipient],), # noqa: E501 @@ -157,6 +162,7 @@ def discriminator(): attribute_map = { 'alert': 'alert', # noqa: E501 'analytical_dashboard': 'analyticalDashboard', # noqa: E501 + 'dashboard_tabular_exports': 'dashboardTabularExports', # noqa: E501 'description': 'description', # noqa: E501 'details': 'details', # noqa: E501 'external_recipients': 'externalRecipients', # noqa: E501 @@ -215,6 +221,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) alert (AutomationAlert): [optional] # noqa: E501 analytical_dashboard (DeclarativeAnalyticalDashboardIdentifier): [optional] # noqa: E501 + dashboard_tabular_exports ([AutomationDashboardTabularExport]): [optional] # noqa: E501 description (str): [optional] # noqa: E501 details ({str: (str,)}): Additional details to be included in the automated message.. [optional] # noqa: E501 external_recipients ([AutomationExternalRecipient]): External recipients of the automation action results.. [optional] # noqa: E501 @@ -315,6 +322,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) alert (AutomationAlert): [optional] # noqa: E501 analytical_dashboard (DeclarativeAnalyticalDashboardIdentifier): [optional] # noqa: E501 + dashboard_tabular_exports ([AutomationDashboardTabularExport]): [optional] # noqa: E501 description (str): [optional] # noqa: E501 details ({str: (str,)}): Additional details to be included in the automated message.. [optional] # noqa: E501 external_recipients ([AutomationExternalRecipient]): External recipients of the automation action results.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/automation_dashboard_tabular_export.py b/gooddata-api-client/gooddata_api_client/model/automation_dashboard_tabular_export.py new file mode 100644 index 000000000..bbac0564c --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/automation_dashboard_tabular_export.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.dashboard_tabular_export_request_v2 import DashboardTabularExportRequestV2 + globals()['DashboardTabularExportRequestV2'] = DashboardTabularExportRequestV2 + + +class AutomationDashboardTabularExport(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 { + 'request_payload': (DashboardTabularExportRequestV2,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'request_payload': 'requestPayload', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, request_payload, *args, **kwargs): # noqa: E501 + """AutomationDashboardTabularExport - a model defined in OpenAPI + + Args: + request_payload (DashboardTabularExportRequestV2): + + 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.request_payload = request_payload + 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, request_payload, *args, **kwargs): # noqa: E501 + """AutomationDashboardTabularExport - a model defined in OpenAPI + + Args: + request_payload (DashboardTabularExportRequestV2): + + 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.request_payload = request_payload + 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_identity_provider_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/dashboard_tabular_export_request_v2.py similarity index 61% rename from gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch_attributes.py rename to gooddata-api-client/gooddata_api_client/model/dashboard_tabular_export_request_v2.py index 9cf5d6077..b33b8acff 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/dashboard_tabular_export_request_v2.py @@ -30,8 +30,14 @@ from gooddata_api_client.exceptions import ApiAttributeError +def lazy_import(): + from gooddata_api_client.model.dashboard_export_settings import DashboardExportSettings + from gooddata_api_client.model.dashboard_filter import DashboardFilter + globals()['DashboardExportSettings'] = DashboardExportSettings + globals()['DashboardFilter'] = DashboardFilter -class JsonApiIdentityProviderPatchAttributes(ModelNormal): + +class DashboardTabularExportRequestV2(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -56,30 +62,14 @@ class JsonApiIdentityProviderPatchAttributes(ModelNormal): """ allowed_values = { + ('format',): { + 'XLSX': "XLSX", + }, } validations = { - ('custom_claim_mapping',): { - }, - ('oauth_client_id',): { - 'max_length': 255, - }, - ('oauth_client_secret',): { - 'max_length': 255, - }, - ('oauth_custom_auth_attributes',): { - }, - ('oauth_issuer_id',): { - 'max_length': 255, - }, - ('oauth_issuer_location',): { - 'max_length': 255, - }, - ('oauth_subject_id_claim',): { - 'max_length': 255, - }, - ('saml_metadata',): { - 'max_length': 15000, + ('widget_ids',): { + 'max_items': 1, }, } @@ -89,6 +79,7 @@ def additional_properties_type(): This must be a method because a model may have properties that are of type self, this must run after the class is loaded """ + lazy_import() return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 _nullable = False @@ -103,17 +94,14 @@ def openapi_types(): openapi_types (dict): The key is attribute name and the value is attribute type. """ + lazy_import() 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_custom_auth_attributes': ({str: (str,)},), # noqa: E501 - 'oauth_custom_scopes': ([str], none_type,), # noqa: E501 - 'oauth_issuer_id': (str,), # noqa: E501 - 'oauth_issuer_location': (str,), # noqa: E501 - 'oauth_subject_id_claim': (str,), # noqa: E501 - 'saml_metadata': (str,), # noqa: E501 + 'dashboard_id': (str,), # noqa: E501 + 'file_name': (str,), # noqa: E501 + 'format': (str,), # noqa: E501 + 'dashboard_filters_override': ([DashboardFilter],), # noqa: E501 + 'settings': (DashboardExportSettings,), # noqa: E501 + 'widget_ids': ([str],), # noqa: E501 } @cached_property @@ -122,16 +110,12 @@ def discriminator(): 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_custom_auth_attributes': 'oauthCustomAuthAttributes', # noqa: E501 - 'oauth_custom_scopes': 'oauthCustomScopes', # noqa: E501 - 'oauth_issuer_id': 'oauthIssuerId', # noqa: E501 - 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501 - 'oauth_subject_id_claim': 'oauthSubjectIdClaim', # noqa: E501 - 'saml_metadata': 'samlMetadata', # noqa: E501 + 'dashboard_id': 'dashboardId', # noqa: E501 + 'file_name': 'fileName', # noqa: E501 + 'format': 'format', # noqa: E501 + 'dashboard_filters_override': 'dashboardFiltersOverride', # noqa: E501 + 'settings': 'settings', # noqa: E501 + 'widget_ids': 'widgetIds', # noqa: E501 } read_only_vars = { @@ -141,10 +125,15 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 - """JsonApiIdentityProviderPatchAttributes - a model defined in OpenAPI + def _from_openapi_data(cls, dashboard_id, file_name, *args, **kwargs): # noqa: E501 + """DashboardTabularExportRequestV2 - a model defined in OpenAPI + + Args: + dashboard_id (str): Dashboard identifier + file_name (str): Filename of downloaded file without extension. Keyword Args: + format (str): Requested tabular export type.. defaults to "XLSX", must be one of ["XLSX", ] # 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,18 +164,12 @@ 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,) - 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). 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_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 - oauth_custom_scopes ([str], none_type): List of additional OAuth scopes which may be required by other providers (e.g. Snowflake). [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 - oauth_subject_id_claim (str): Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.. [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 + dashboard_filters_override ([DashboardFilter]): List of filters that will be used instead of the default dashboard filters.. [optional] # noqa: E501 + settings (DashboardExportSettings): [optional] # noqa: E501 + widget_ids ([str]): List of widget identifiers to be exported. Note that only one widget is currently supported.. [optional] # noqa: E501 """ + format = kwargs.get('format', "XLSX") _check_type = kwargs.pop('_check_type', True) _spec_property_naming = kwargs.pop('_spec_property_naming', True) _path_to_item = kwargs.pop('_path_to_item', ()) @@ -216,6 +199,9 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.dashboard_id = dashboard_id + self.file_name = file_name + self.format = format for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -236,10 +222,15 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, *args, **kwargs): # noqa: E501 - """JsonApiIdentityProviderPatchAttributes - a model defined in OpenAPI + def __init__(self, dashboard_id, file_name, *args, **kwargs): # noqa: E501 + """DashboardTabularExportRequestV2 - a model defined in OpenAPI + + Args: + dashboard_id (str): Dashboard identifier + file_name (str): Filename of downloaded file without extension. Keyword Args: + format (str): Requested tabular export type.. defaults to "XLSX", must be one of ["XLSX", ] # 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. @@ -270,18 +261,12 @@ 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,) - 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). 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_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 - oauth_custom_scopes ([str], none_type): List of additional OAuth scopes which may be required by other providers (e.g. Snowflake). [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 - oauth_subject_id_claim (str): Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.. [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 + dashboard_filters_override ([DashboardFilter]): List of filters that will be used instead of the default dashboard filters.. [optional] # noqa: E501 + settings (DashboardExportSettings): [optional] # noqa: E501 + widget_ids ([str]): List of widget identifiers to be exported. Note that only one widget is currently supported.. [optional] # noqa: E501 """ + format = kwargs.get('format', "XLSX") _check_type = kwargs.pop('_check_type', True) _spec_property_naming = kwargs.pop('_spec_property_naming', False) _path_to_item = kwargs.pop('_path_to_item', ()) @@ -309,6 +294,9 @@ def __init__(self, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.dashboard_id = dashboard_id + self.file_name = file_name + self.format = format 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_automation.py b/gooddata-api-client/gooddata_api_client/model/declarative_automation.py index a17d5e370..69571761f 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_dashboard_tabular_export import AutomationDashboardTabularExport from gooddata_api_client.model.automation_external_recipient import AutomationExternalRecipient from gooddata_api_client.model.automation_image_export import AutomationImageExport from gooddata_api_client.model.automation_metadata import AutomationMetadata @@ -45,6 +46,7 @@ def lazy_import(): from gooddata_api_client.model.declarative_notification_channel_identifier import DeclarativeNotificationChannelIdentifier from gooddata_api_client.model.declarative_user_identifier import DeclarativeUserIdentifier globals()['AutomationAlert'] = AutomationAlert + globals()['AutomationDashboardTabularExport'] = AutomationDashboardTabularExport globals()['AutomationExternalRecipient'] = AutomationExternalRecipient globals()['AutomationImageExport'] = AutomationImageExport globals()['AutomationMetadata'] = AutomationMetadata @@ -101,6 +103,8 @@ class DeclarativeAutomation(ModelNormal): 'pattern': r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}', # noqa: E501 }, }, + ('dashboard_tabular_exports',): { + }, ('description',): { 'max_length': 255, }, @@ -162,6 +166,7 @@ def openapi_types(): 'analytical_dashboard': (DeclarativeAnalyticalDashboardIdentifier,), # noqa: E501 'created_at': (str, none_type,), # noqa: E501 'created_by': (DeclarativeUserIdentifier,), # noqa: E501 + 'dashboard_tabular_exports': ([AutomationDashboardTabularExport],), # noqa: E501 'description': (str,), # noqa: E501 'details': ({str: (str,)},), # noqa: E501 'export_definitions': ([DeclarativeExportDefinitionIdentifier],), # noqa: E501 @@ -193,6 +198,7 @@ def discriminator(): 'analytical_dashboard': 'analyticalDashboard', # noqa: E501 'created_at': 'createdAt', # noqa: E501 'created_by': 'createdBy', # noqa: E501 + 'dashboard_tabular_exports': 'dashboardTabularExports', # noqa: E501 'description': 'description', # noqa: E501 'details': 'details', # noqa: E501 'export_definitions': 'exportDefinitions', # noqa: E501 @@ -261,6 +267,7 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 analytical_dashboard (DeclarativeAnalyticalDashboardIdentifier): [optional] # noqa: E501 created_at (str, none_type): Time of the entity creation.. [optional] # noqa: E501 created_by (DeclarativeUserIdentifier): [optional] # noqa: E501 + dashboard_tabular_exports ([AutomationDashboardTabularExport]): [optional] # noqa: E501 description (str): [optional] # noqa: E501 details ({str: (str,)}): TODO. [optional] # noqa: E501 export_definitions ([DeclarativeExportDefinitionIdentifier]): [optional] # noqa: E501 @@ -372,6 +379,7 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 analytical_dashboard (DeclarativeAnalyticalDashboardIdentifier): [optional] # noqa: E501 created_at (str, none_type): Time of the entity creation.. [optional] # noqa: E501 created_by (DeclarativeUserIdentifier): [optional] # noqa: E501 + dashboard_tabular_exports ([AutomationDashboardTabularExport]): [optional] # noqa: E501 description (str): [optional] # noqa: E501 details ({str: (str,)}): TODO. [optional] # noqa: E501 export_definitions ([DeclarativeExportDefinitionIdentifier]): [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 19ad5409e..9f5496dce 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 @@ -56,6 +56,11 @@ class DeclarativeIdentityProvider(ModelNormal): """ allowed_values = { + ('idp_type',): { + 'MANAGED_IDP': "MANAGED_IDP", + 'FIM_IDP': "FIM_IDP", + 'CUSTOM_IDP': "CUSTOM_IDP", + }, } validations = { @@ -110,8 +115,9 @@ def openapi_types(): """ return { 'id': (str,), # noqa: E501 - 'identifiers': ([str],), # noqa: E501 'custom_claim_mapping': ({str: (str,)},), # noqa: E501 + 'identifiers': ([str],), # noqa: E501 + 'idp_type': (str,), # noqa: E501 'oauth_client_id': (str,), # noqa: E501 'oauth_client_secret': (str,), # noqa: E501 'oauth_custom_auth_attributes': ({str: (str,)},), # noqa: E501 @@ -129,8 +135,9 @@ def discriminator(): attribute_map = { 'id': 'id', # noqa: E501 - 'identifiers': 'identifiers', # noqa: E501 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 + 'identifiers': 'identifiers', # noqa: E501 + 'idp_type': 'idpType', # noqa: E501 'oauth_client_id': 'oauthClientId', # noqa: E501 'oauth_client_secret': 'oauthClientSecret', # noqa: E501 'oauth_custom_auth_attributes': 'oauthCustomAuthAttributes', # noqa: E501 @@ -148,12 +155,11 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, id, identifiers, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, id, *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 @@ -187,6 +193,8 @@ def _from_openapi_data(cls, id, identifiers, *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.. [optional] # noqa: E501 + idp_type (str): Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.. [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_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 @@ -227,7 +235,6 @@ def _from_openapi_data(cls, id, identifiers, *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 \ @@ -248,12 +255,11 @@ def _from_openapi_data(cls, id, identifiers, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, id, identifiers, *args, **kwargs): # noqa: E501 + def __init__(self, id, *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 @@ -287,6 +293,8 @@ def __init__(self, id, identifiers, *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.. [optional] # noqa: E501 + idp_type (str): Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.. [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_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 @@ -325,7 +333,6 @@ def __init__(self, id, identifiers, *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_source_fact_reference.py b/gooddata-api-client/gooddata_api_client/model/declarative_source_fact_reference.py index b8cbb18d1..b8725374d 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_source_fact_reference.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_source_fact_reference.py @@ -93,8 +93,8 @@ def openapi_types(): """ lazy_import() return { - 'id': (FactIdentifier,), # noqa: E501 'operation': (str,), # noqa: E501 + 'reference': (FactIdentifier,), # noqa: E501 } @cached_property @@ -103,8 +103,8 @@ def discriminator(): attribute_map = { - 'id': 'id', # noqa: E501 'operation': 'operation', # noqa: E501 + 'reference': 'reference', # noqa: E501 } read_only_vars = { @@ -114,12 +114,12 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, id, operation, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, operation, reference, *args, **kwargs): # noqa: E501 """DeclarativeSourceFactReference - a model defined in OpenAPI Args: - id (FactIdentifier): operation (str): Aggregation operation. + reference (FactIdentifier): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -183,8 +183,8 @@ def _from_openapi_data(cls, id, operation, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.id = id self.operation = operation + self.reference = reference for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -205,12 +205,12 @@ def _from_openapi_data(cls, id, operation, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, id, operation, *args, **kwargs): # noqa: E501 + def __init__(self, operation, reference, *args, **kwargs): # noqa: E501 """DeclarativeSourceFactReference - a model defined in OpenAPI Args: - id (FactIdentifier): operation (str): Aggregation operation. + reference (FactIdentifier): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -272,8 +272,8 @@ def __init__(self, id, operation, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.id = id self.operation = operation + self.reference = reference 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_automation_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes.py index 82f80d14f..4f8916447 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,6 +32,7 @@ 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_dashboard_tabular_exports_inner import JsonApiAutomationInAttributesDashboardTabularExportsInner 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_image_exports_inner import JsonApiAutomationInAttributesImageExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_metadata import JsonApiAutomationInAttributesMetadata @@ -41,6 +42,7 @@ def lazy_import(): 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()['JsonApiAutomationInAttributesDashboardTabularExportsInner'] = JsonApiAutomationInAttributesDashboardTabularExportsInner globals()['JsonApiAutomationInAttributesExternalRecipientsInner'] = JsonApiAutomationInAttributesExternalRecipientsInner globals()['JsonApiAutomationInAttributesImageExportsInner'] = JsonApiAutomationInAttributesImageExportsInner globals()['JsonApiAutomationInAttributesMetadata'] = JsonApiAutomationInAttributesMetadata @@ -119,6 +121,7 @@ def openapi_types(): return { 'alert': (JsonApiAutomationInAttributesAlert,), # noqa: E501 'are_relations_valid': (bool,), # noqa: E501 + 'dashboard_tabular_exports': ([JsonApiAutomationInAttributesDashboardTabularExportsInner],), # noqa: E501 'description': (str,), # noqa: E501 'details': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 'external_recipients': ([JsonApiAutomationInAttributesExternalRecipientsInner],), # noqa: E501 @@ -142,6 +145,7 @@ def discriminator(): attribute_map = { 'alert': 'alert', # noqa: E501 'are_relations_valid': 'areRelationsValid', # noqa: E501 + 'dashboard_tabular_exports': 'dashboardTabularExports', # noqa: E501 'description': 'description', # noqa: E501 'details': 'details', # noqa: E501 'external_recipients': 'externalRecipients', # noqa: E501 @@ -200,6 +204,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) alert (JsonApiAutomationInAttributesAlert): [optional] # noqa: E501 are_relations_valid (bool): [optional] # noqa: E501 + dashboard_tabular_exports ([JsonApiAutomationInAttributesDashboardTabularExportsInner]): [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 @@ -300,6 +305,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) alert (JsonApiAutomationInAttributesAlert): [optional] # noqa: E501 are_relations_valid (bool): [optional] # noqa: E501 + dashboard_tabular_exports ([JsonApiAutomationInAttributesDashboardTabularExportsInner]): [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 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_dashboard_tabular_exports_inner.py b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_dashboard_tabular_exports_inner.py new file mode 100644 index 000000000..0d8f4fc4e --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_dashboard_tabular_exports_inner.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.dashboard_tabular_export_request_v2 import DashboardTabularExportRequestV2 + globals()['DashboardTabularExportRequestV2'] = DashboardTabularExportRequestV2 + + +class JsonApiAutomationInAttributesDashboardTabularExportsInner(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 { + 'request_payload': (DashboardTabularExportRequestV2,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'request_payload': 'requestPayload', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, request_payload, *args, **kwargs): # noqa: E501 + """JsonApiAutomationInAttributesDashboardTabularExportsInner - a model defined in OpenAPI + + Args: + request_payload (DashboardTabularExportRequestV2): + + 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.request_payload = request_payload + 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, request_payload, *args, **kwargs): # noqa: E501 + """JsonApiAutomationInAttributesDashboardTabularExportsInner - a model defined in OpenAPI + + Args: + request_payload (DashboardTabularExportRequestV2): + + 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.request_payload = request_payload + 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 cc240737b..49a10e202 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,6 +32,7 @@ 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_dashboard_tabular_exports_inner import JsonApiAutomationInAttributesDashboardTabularExportsInner 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_image_exports_inner import JsonApiAutomationInAttributesImageExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_metadata import JsonApiAutomationInAttributesMetadata @@ -41,6 +42,7 @@ def lazy_import(): 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()['JsonApiAutomationInAttributesDashboardTabularExportsInner'] = JsonApiAutomationInAttributesDashboardTabularExportsInner globals()['JsonApiAutomationInAttributesExternalRecipientsInner'] = JsonApiAutomationInAttributesExternalRecipientsInner globals()['JsonApiAutomationInAttributesImageExportsInner'] = JsonApiAutomationInAttributesImageExportsInner globals()['JsonApiAutomationInAttributesMetadata'] = JsonApiAutomationInAttributesMetadata @@ -120,6 +122,7 @@ def openapi_types(): 'alert': (JsonApiAutomationInAttributesAlert,), # noqa: E501 'are_relations_valid': (bool,), # noqa: E501 'created_at': (datetime,), # noqa: E501 + 'dashboard_tabular_exports': ([JsonApiAutomationInAttributesDashboardTabularExportsInner],), # noqa: E501 'description': (str,), # noqa: E501 'details': (bool, date, datetime, dict, float, int, list, str, none_type,), # noqa: E501 'external_recipients': ([JsonApiAutomationInAttributesExternalRecipientsInner],), # noqa: E501 @@ -145,6 +148,7 @@ def discriminator(): 'alert': 'alert', # noqa: E501 'are_relations_valid': 'areRelationsValid', # noqa: E501 'created_at': 'createdAt', # noqa: E501 + 'dashboard_tabular_exports': 'dashboardTabularExports', # noqa: E501 'description': 'description', # noqa: E501 'details': 'details', # noqa: E501 'external_recipients': 'externalRecipients', # noqa: E501 @@ -205,6 +209,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 alert (JsonApiAutomationInAttributesAlert): [optional] # noqa: E501 are_relations_valid (bool): [optional] # noqa: E501 created_at (datetime): [optional] # noqa: E501 + dashboard_tabular_exports ([JsonApiAutomationInAttributesDashboardTabularExportsInner]): [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 @@ -307,6 +312,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 alert (JsonApiAutomationInAttributesAlert): [optional] # noqa: E501 are_relations_valid (bool): [optional] # noqa: E501 created_at (datetime): [optional] # noqa: E501 + dashboard_tabular_exports ([JsonApiAutomationInAttributesDashboardTabularExportsInner]): [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 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 e3c366fb9..150730d8e 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,11 +119,10 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderIn - a model defined in OpenAPI Args: - attributes (JsonApiIdentityProviderInAttributes): id (str): API identifier of an object Keyword Args: @@ -158,6 +157,7 @@ def _from_openapi_data(cls, attributes, 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,7 +190,6 @@ def _from_openapi_data(cls, attributes, 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(): @@ -213,11 +212,10 @@ def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, attributes, id, *args, **kwargs): # noqa: E501 + def __init__(self, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderIn - a model defined in OpenAPI Args: - attributes (JsonApiIdentityProviderInAttributes): id (str): API identifier of an object Keyword Args: @@ -252,6 +250,7 @@ def __init__(self, attributes, 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") @@ -282,7 +281,6 @@ def __init__(self, attributes, 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 bcbf24519..21369b943 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 @@ -56,6 +56,11 @@ class JsonApiIdentityProviderInAttributes(ModelNormal): """ allowed_values = { + ('idp_type',): { + 'MANAGED_IDP': "MANAGED_IDP", + 'FIM_IDP': "FIM_IDP", + 'CUSTOM_IDP': "CUSTOM_IDP", + }, } validations = { @@ -104,8 +109,9 @@ def openapi_types(): and the value is attribute type. """ return { - 'identifiers': ([str],), # noqa: E501 'custom_claim_mapping': ({str: (str,)},), # noqa: E501 + 'identifiers': ([str],), # noqa: E501 + 'idp_type': (str,), # noqa: E501 'oauth_client_id': (str,), # noqa: E501 'oauth_client_secret': (str,), # noqa: E501 'oauth_custom_auth_attributes': ({str: (str,)},), # noqa: E501 @@ -122,8 +128,9 @@ def discriminator(): attribute_map = { - 'identifiers': 'identifiers', # noqa: E501 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 + 'identifiers': 'identifiers', # noqa: E501 + 'idp_type': 'idpType', # noqa: E501 'oauth_client_id': 'oauthClientId', # noqa: E501 'oauth_client_secret': 'oauthClientSecret', # noqa: E501 'oauth_custom_auth_attributes': 'oauthCustomAuthAttributes', # noqa: E501 @@ -141,12 +148,9 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, identifiers, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, *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 @@ -179,6 +183,8 @@ def _from_openapi_data(cls, identifiers, *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). 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.. [optional] # noqa: E501 + idp_type (str): Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.. [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_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 @@ -218,7 +224,6 @@ def _from_openapi_data(cls, identifiers, *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 \ @@ -239,12 +244,9 @@ def _from_openapi_data(cls, identifiers, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, identifiers, *args, **kwargs): # noqa: E501 + def __init__(self, *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 @@ -277,6 +279,8 @@ def __init__(self, identifiers, *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). 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.. [optional] # noqa: E501 + idp_type (str): Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.. [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_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 @@ -314,7 +318,6 @@ def __init__(self, identifiers, *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 e6d6e8751..d5ad16172 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,11 +119,10 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderOut - a model defined in OpenAPI Args: - attributes (JsonApiIdentityProviderOutAttributes): id (str): API identifier of an object Keyword Args: @@ -158,6 +157,7 @@ def _from_openapi_data(cls, attributes, 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,7 +190,6 @@ def _from_openapi_data(cls, attributes, 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(): @@ -213,11 +212,10 @@ def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, attributes, id, *args, **kwargs): # noqa: E501 + def __init__(self, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderOut - a model defined in OpenAPI Args: - attributes (JsonApiIdentityProviderOutAttributes): id (str): API identifier of an object Keyword Args: @@ -252,6 +250,7 @@ def __init__(self, attributes, 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") @@ -282,7 +281,6 @@ def __init__(self, attributes, 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 4d0f98c66..d65caf858 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 @@ -56,6 +56,11 @@ class JsonApiIdentityProviderOutAttributes(ModelNormal): """ allowed_values = { + ('idp_type',): { + 'MANAGED_IDP': "MANAGED_IDP", + 'FIM_IDP': "FIM_IDP", + 'CUSTOM_IDP': "CUSTOM_IDP", + }, } validations = { @@ -98,8 +103,9 @@ def openapi_types(): and the value is attribute type. """ return { - 'identifiers': ([str],), # noqa: E501 'custom_claim_mapping': ({str: (str,)},), # noqa: E501 + 'identifiers': ([str],), # noqa: E501 + 'idp_type': (str,), # noqa: E501 'oauth_client_id': (str,), # noqa: E501 'oauth_custom_auth_attributes': ({str: (str,)},), # noqa: E501 'oauth_custom_scopes': ([str], none_type,), # noqa: E501 @@ -114,8 +120,9 @@ def discriminator(): attribute_map = { - 'identifiers': 'identifiers', # noqa: E501 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 + 'identifiers': 'identifiers', # noqa: E501 + 'idp_type': 'idpType', # noqa: E501 'oauth_client_id': 'oauthClientId', # noqa: E501 'oauth_custom_auth_attributes': 'oauthCustomAuthAttributes', # noqa: E501 'oauth_custom_scopes': 'oauthCustomScopes', # noqa: E501 @@ -131,12 +138,9 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, identifiers, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, *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 @@ -169,6 +173,8 @@ def _from_openapi_data(cls, identifiers, *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). 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.. [optional] # noqa: E501 + idp_type (str): Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.. [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_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 oauth_custom_scopes ([str], none_type): List of additional OAuth scopes which may be required by other providers (e.g. Snowflake). [optional] # noqa: E501 @@ -206,7 +212,6 @@ def _from_openapi_data(cls, identifiers, *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 \ @@ -227,12 +232,9 @@ def _from_openapi_data(cls, identifiers, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, identifiers, *args, **kwargs): # noqa: E501 + def __init__(self, *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 @@ -265,6 +267,8 @@ def __init__(self, identifiers, *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). 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.. [optional] # noqa: E501 + idp_type (str): Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.. [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_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 oauth_custom_scopes ([str], none_type): List of additional OAuth scopes which may be required by other providers (e.g. Snowflake). [optional] # noqa: E501 @@ -300,7 +304,6 @@ def __init__(self, identifiers, *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 da107caf9..c0e5f5039 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,7 +129,6 @@ 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 @@ -162,6 +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 (JsonApiIdentityProviderOutAttributes): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ @@ -237,7 +237,6 @@ 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 @@ -270,6 +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 (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 14e1593da..46844937b 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_patch_attributes import JsonApiIdentityProviderPatchAttributes - globals()['JsonApiIdentityProviderPatchAttributes'] = JsonApiIdentityProviderPatchAttributes + from gooddata_api_client.model.json_api_identity_provider_in_attributes import JsonApiIdentityProviderInAttributes + globals()['JsonApiIdentityProviderInAttributes'] = JsonApiIdentityProviderInAttributes 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,11 +119,10 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderPatch - a model defined in OpenAPI Args: - attributes (JsonApiIdentityProviderPatchAttributes): id (str): API identifier of an object Keyword Args: @@ -158,6 +157,7 @@ def _from_openapi_data(cls, attributes, 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,7 +190,6 @@ def _from_openapi_data(cls, attributes, 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(): @@ -213,11 +212,10 @@ def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, attributes, id, *args, **kwargs): # noqa: E501 + def __init__(self, id, *args, **kwargs): # noqa: E501 """JsonApiIdentityProviderPatch - a model defined in OpenAPI Args: - attributes (JsonApiIdentityProviderPatchAttributes): id (str): API identifier of an object Keyword Args: @@ -252,6 +250,7 @@ def __init__(self, attributes, 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") @@ -282,7 +281,6 @@ def __init__(self, attributes, 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_llm_endpoint_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_llm_endpoint_in_attributes.py index c6839715d..99ba87736 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 @@ -58,6 +58,7 @@ class JsonApiLlmEndpointInAttributes(ModelNormal): allowed_values = { ('provider',): { 'OPENAI': "OPENAI", + 'AZURE_OPENAI': "AZURE_OPENAI", }, } @@ -170,7 +171,7 @@ def _from_openapi_data(cls, title, token, *args, **kwargs): # noqa: E501 base_url (str, none_type): Custom LLM endpoint.. [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 + provider (str): LLM Provider.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -265,7 +266,7 @@ def __init__(self, title, token, *args, **kwargs): # noqa: E501 base_url (str, none_type): Custom LLM endpoint.. [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 + provider (str): LLM Provider.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) 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 752791573..9faf5ad22 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 @@ -58,6 +58,7 @@ class JsonApiLlmEndpointOutAttributes(ModelNormal): allowed_values = { ('provider',): { 'OPENAI': "OPENAI", + 'AZURE_OPENAI': "AZURE_OPENAI", }, } @@ -164,7 +165,7 @@ def _from_openapi_data(cls, title, *args, **kwargs): # noqa: E501 base_url (str, none_type): Custom LLM endpoint.. [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 + provider (str): LLM Provider.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -257,7 +258,7 @@ def __init__(self, title, *args, **kwargs): # noqa: E501 base_url (str, none_type): Custom LLM endpoint.. [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 + provider (str): LLM Provider.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) 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 0ae8b0b03..75ee7d976 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 @@ -58,6 +58,7 @@ class JsonApiLlmEndpointPatchAttributes(ModelNormal): allowed_values = { ('provider',): { 'OPENAI': "OPENAI", + 'AZURE_OPENAI': "AZURE_OPENAI", }, } @@ -166,7 +167,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 base_url (str, none_type): Custom LLM endpoint.. [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 + provider (str): LLM Provider.. [optional] # 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 """ @@ -257,7 +258,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 base_url (str, none_type): Custom LLM endpoint.. [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 + provider (str): LLM Provider.. [optional] # 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 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_includes.py index 54dcd2d40..f71afe680 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_includes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_includes.py @@ -106,9 +106,9 @@ def openapi_types(): """ lazy_import() return { + 'attributes': (JsonApiIdentityProviderOutAttributes,), # noqa: E501 'relationships': (JsonApiUserGroupInRelationships,), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 - 'attributes': (JsonApiIdentityProviderOutAttributes,), # noqa: E501 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 } @@ -119,9 +119,9 @@ def discriminator(): attribute_map = { + 'attributes': 'attributes', # noqa: E501 'relationships': 'relationships', # noqa: E501 'links': 'links', # noqa: E501 - 'attributes': 'attributes', # noqa: E501 'id': 'id', # noqa: E501 'type': 'type', # noqa: E501 } @@ -165,9 +165,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,) + attributes (JsonApiIdentityProviderOutAttributes): [optional] # noqa: E501 relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 - attributes (JsonApiIdentityProviderOutAttributes): [optional] # noqa: E501 id (str): API identifier of an object. [optional] # noqa: E501 type (str): Object type. [optional] if omitted the server will use the default value of "identityProvider" # noqa: E501 """ @@ -273,9 +273,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,) + attributes (JsonApiIdentityProviderOutAttributes): [optional] # noqa: E501 relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 - attributes (JsonApiIdentityProviderOutAttributes): [optional] # noqa: E501 id (str): API identifier of an object. [optional] # noqa: E501 type (str): Object type. [optional] if omitted the server will use the default value of "identityProvider" # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/switch_identity_provider_request.py b/gooddata-api-client/gooddata_api_client/model/switch_identity_provider_request.py new file mode 100644 index 000000000..08ce23f97 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/switch_identity_provider_request.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 SwitchIdentityProviderRequest(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 { + 'idp_id': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'idp_id': 'idpId', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, idp_id, *args, **kwargs): # noqa: E501 + """SwitchIdentityProviderRequest - a model defined in OpenAPI + + Args: + idp_id (str): Identity provider ID to set as active for the organization. + + 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.idp_id = idp_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, idp_id, *args, **kwargs): # noqa: E501 + """SwitchIdentityProviderRequest - a model defined in OpenAPI + + Args: + idp_id (str): Identity provider ID to set as active for the organization. + + 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.idp_id = idp_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/model/test_destination_request.py b/gooddata-api-client/gooddata_api_client/model/test_destination_request.py index 8b6821e7b..965eb81d5 100644 --- a/gooddata-api-client/gooddata_api_client/model/test_destination_request.py +++ b/gooddata-api-client/gooddata_api_client/model/test_destination_request.py @@ -31,7 +31,9 @@ def lazy_import(): + from gooddata_api_client.model.automation_external_recipient import AutomationExternalRecipient from gooddata_api_client.model.declarative_notification_channel_destination import DeclarativeNotificationChannelDestination + globals()['AutomationExternalRecipient'] = AutomationExternalRecipient globals()['DeclarativeNotificationChannelDestination'] = DeclarativeNotificationChannelDestination @@ -63,6 +65,9 @@ class TestDestinationRequest(ModelNormal): } validations = { + ('external_recipients',): { + 'max_items': 1, + }, } @cached_property @@ -89,6 +94,7 @@ def openapi_types(): lazy_import() return { 'destination': (DeclarativeNotificationChannelDestination,), # noqa: E501 + 'external_recipients': ([AutomationExternalRecipient], none_type,), # noqa: E501 } @cached_property @@ -98,6 +104,7 @@ def discriminator(): attribute_map = { 'destination': 'destination', # noqa: E501 + 'external_recipients': 'externalRecipients', # noqa: E501 } read_only_vars = { @@ -144,6 +151,7 @@ def _from_openapi_data(cls, destination, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + external_recipients ([AutomationExternalRecipient], none_type): External recipients of the test result.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -233,6 +241,7 @@ def __init__(self, destination, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + external_recipients ([AutomationExternalRecipient], none_type): External recipients of the test result.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/webhook_message.py b/gooddata-api-client/gooddata_api_client/model/webhook_message.py index 3ec58be50..c971143a2 100644 --- a/gooddata-api-client/gooddata_api_client/model/webhook_message.py +++ b/gooddata-api-client/gooddata_api_client/model/webhook_message.py @@ -93,7 +93,7 @@ def openapi_types(): lazy_import() return { 'data': (WebhookMessageData,), # noqa: E501 - 'timestamp': (str,), # noqa: E501 + 'timestamp': (datetime,), # noqa: E501 'type': (str,), # noqa: E501 } @@ -120,7 +120,7 @@ def _from_openapi_data(cls, data, timestamp, type, *args, **kwargs): # noqa: E5 Args: data (WebhookMessageData): - timestamp (str): + timestamp (datetime): type (str): Keyword Args: @@ -213,7 +213,7 @@ def __init__(self, data, timestamp, type, *args, **kwargs): # noqa: E501 Args: data (WebhookMessageData): - timestamp (str): + timestamp (datetime): type (str): Keyword Args: 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 index 05a7c1d8c..c6d5e21a0 100644 --- a/gooddata-api-client/gooddata_api_client/model/webhook_message_data.py +++ b/gooddata-api-client/gooddata_api_client/model/webhook_message_data.py @@ -98,6 +98,7 @@ def openapi_types(): return { 'automation': (WebhookAutomationInfo,), # noqa: E501 'alert': (AlertDescription,), # noqa: E501 + 'dashboard_tabular_exports': ([ExportResult],), # noqa: E501 'details': ({str: (str,)},), # noqa: E501 'filters': ([NotificationFilter],), # noqa: E501 'image_exports': ([ExportResult],), # noqa: E501 @@ -118,6 +119,7 @@ def discriminator(): attribute_map = { 'automation': 'automation', # noqa: E501 'alert': 'alert', # noqa: E501 + 'dashboard_tabular_exports': 'dashboardTabularExports', # noqa: E501 'details': 'details', # noqa: E501 'filters': 'filters', # noqa: E501 'image_exports': 'imageExports', # noqa: E501 @@ -175,6 +177,7 @@ def _from_openapi_data(cls, automation, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) alert (AlertDescription): [optional] # noqa: E501 + dashboard_tabular_exports ([ExportResult]): [optional] # noqa: E501 details ({str: (str,)}): [optional] # noqa: E501 filters ([NotificationFilter]): [optional] # noqa: E501 image_exports ([ExportResult]): [optional] # noqa: E501 @@ -275,6 +278,7 @@ def __init__(self, automation, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) alert (AlertDescription): [optional] # noqa: E501 + dashboard_tabular_exports ([ExportResult]): [optional] # noqa: E501 details ({str: (str,)}): [optional] # noqa: E501 filters ([NotificationFilter]): [optional] # noqa: E501 image_exports ([ExportResult]): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/models/__init__.py b/gooddata-api-client/gooddata_api_client/models/__init__.py index 1a42f7bf1..e65d873b3 100644 --- a/gooddata-api-client/gooddata_api_client/models/__init__.py +++ b/gooddata-api-client/gooddata_api_client/models/__init__.py @@ -67,6 +67,7 @@ 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_dashboard_tabular_export import AutomationDashboardTabularExport from gooddata_api_client.model.automation_external_recipient import AutomationExternalRecipient from gooddata_api_client.model.automation_image_export import AutomationImageExport from gooddata_api_client.model.automation_metadata import AutomationMetadata @@ -117,6 +118,7 @@ from gooddata_api_client.model.dashboard_permissions_assignment import DashboardPermissionsAssignment from gooddata_api_client.model.dashboard_slides_template import DashboardSlidesTemplate from gooddata_api_client.model.dashboard_tabular_export_request import DashboardTabularExportRequest +from gooddata_api_client.model.dashboard_tabular_export_request_v2 import DashboardTabularExportRequestV2 from gooddata_api_client.model.data_column_locator import DataColumnLocator from gooddata_api_client.model.data_column_locators import DataColumnLocators from gooddata_api_client.model.data_source_parameter import DataSourceParameter @@ -349,6 +351,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_dashboard_tabular_exports_inner import JsonApiAutomationInAttributesDashboardTabularExportsInner 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_image_exports_inner import JsonApiAutomationInAttributesImageExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_metadata import JsonApiAutomationInAttributesMetadata @@ -550,7 +553,6 @@ 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_identity_provider_to_one_linkage import JsonApiIdentityProviderToOneLinkage from gooddata_api_client.model.json_api_jwk_in import JsonApiJwkIn @@ -892,6 +894,7 @@ 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.switch_identity_provider_request import SwitchIdentityProviderRequest 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 diff --git a/schemas/gooddata-api-client.json b/schemas/gooddata-api-client.json index 55966fee6..8282b0a17 100644 --- a/schemas/gooddata-api-client.json +++ b/schemas/gooddata-api-client.json @@ -179,6 +179,13 @@ "analyticalDashboard": { "$ref": "#/components/schemas/DeclarativeAnalyticalDashboardIdentifier" }, + "dashboardTabularExports": { + "items": { + "$ref": "#/components/schemas/AutomationDashboardTabularExport" + }, + "type": "array", + "uniqueItems": true + }, "description": { "maxLength": 255, "type": "string" @@ -1258,6 +1265,17 @@ ], "type": "object" }, + "AutomationDashboardTabularExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/DashboardTabularExportRequestV2" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, "AutomationExternalRecipient": { "properties": { "email": { @@ -2480,6 +2498,54 @@ ], "type": "object" }, + "DashboardTabularExportRequestV2": { + "description": "Export request object describing the export properties for dashboard tabular exports (v2 with dashboardId).", + "properties": { + "dashboardFiltersOverride": { + "description": "List of filters that will be used instead of the default dashboard filters.", + "items": { + "$ref": "#/components/schemas/DashboardFilter" + }, + "type": "array" + }, + "dashboardId": { + "description": "Dashboard identifier", + "example": "761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + "type": "string" + }, + "fileName": { + "description": "Filename of downloaded file without extension.", + "example": "result", + "type": "string" + }, + "format": { + "description": "Requested tabular export type.", + "enum": [ + "XLSX" + ], + "example": "XLSX", + "type": "string" + }, + "settings": { + "$ref": "#/components/schemas/DashboardExportSettings" + }, + "widgetIds": { + "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", + "items": { + "type": "string" + }, + "maxItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "dashboardId", + "fileName", + "format" + ], + "type": "object" + }, "DataColumnLocator": { "description": "Mapping from dimension items (either 'localIdentifier' from 'AttributeItem', or \"measureGroup\") to their respective values. This effectively specifies the path (location) of the data column used for sorting. Therefore values for all dimension items must be specified.", "example": { @@ -3225,6 +3291,13 @@ "createdBy": { "$ref": "#/components/schemas/DeclarativeUserIdentifier" }, + "dashboardTabularExports": { + "items": { + "$ref": "#/components/schemas/AutomationDashboardTabularExport" + }, + "type": "array", + "uniqueItems": true + }, "description": { "maxLength": 255, "type": "string" @@ -4243,17 +4316,26 @@ "type": "string" }, "identifiers": { - "description": "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.", + "description": "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.", "example": [ "gooddata.com" ], "items": { - "description": "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.", + "description": "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.", "example": "[\"gooddata.com\"]", "type": "string" }, "type": "array" }, + "idpType": { + "description": "Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.", + "enum": [ + "MANAGED_IDP", + "FIM_IDP", + "CUSTOM_IDP" + ], + "type": "string" + }, "oauthClientId": { "description": "The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -4307,8 +4389,7 @@ } }, "required": [ - "id", - "identifiers" + "id" ], "type": "object" }, @@ -5124,9 +5205,6 @@ "DeclarativeSourceFactReference": { "description": "Aggregated awareness source fact reference.", "properties": { - "id": { - "$ref": "#/components/schemas/FactIdentifier" - }, "operation": { "description": "Aggregation operation.", "enum": [ @@ -5136,11 +5214,14 @@ ], "example": "SUM", "type": "string" + }, + "reference": { + "$ref": "#/components/schemas/FactIdentifier" } }, "required": [ - "id", - "operation" + "operation", + "reference" ], "type": "object" }, @@ -7473,6 +7554,8 @@ "widgetIds": { "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -8989,6 +9072,20 @@ "areRelationsValid": { "type": "boolean" }, + "dashboardTabularExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/DashboardTabularExportRequestV2" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "description": { "maxLength": 10000, "type": "string" @@ -9290,6 +9387,20 @@ "format": "date-time", "type": "string" }, + "dashboardTabularExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/DashboardTabularExportRequestV2" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "description": { "maxLength": 10000, "type": "string" @@ -9695,6 +9806,20 @@ "areRelationsValid": { "type": "boolean" }, + "dashboardTabularExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/DashboardTabularExportRequestV2" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "description": { "maxLength": 10000, "type": "string" @@ -14437,7 +14562,7 @@ "type": "object" }, "identifiers": { - "description": "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.", + "description": "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.", "example": [ "gooddata.com" ], @@ -14446,6 +14571,15 @@ }, "type": "array" }, + "idpType": { + "description": "Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.", + "enum": [ + "MANAGED_IDP", + "FIM_IDP", + "CUSTOM_IDP" + ], + "type": "string" + }, "oauthClientId": { "description": "The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -14496,9 +14630,6 @@ "type": "string" } }, - "required": [ - "identifiers" - ], "type": "object" }, "id": { @@ -14517,7 +14648,6 @@ } }, "required": [ - "attributes", "id", "type" ], @@ -14567,7 +14697,7 @@ "type": "object" }, "identifiers": { - "description": "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.", + "description": "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.", "example": [ "gooddata.com" ], @@ -14576,6 +14706,15 @@ }, "type": "array" }, + "idpType": { + "description": "Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.", + "enum": [ + "MANAGED_IDP", + "FIM_IDP", + "CUSTOM_IDP" + ], + "type": "string" + }, "oauthClientId": { "description": "The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -14616,9 +14755,6 @@ "type": "string" } }, - "required": [ - "identifiers" - ], "type": "object" }, "id": { @@ -14637,7 +14773,6 @@ } }, "required": [ - "attributes", "id", "type" ], @@ -14708,7 +14843,7 @@ "type": "object" }, "identifiers": { - "description": "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.", + "description": "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.", "example": [ "gooddata.com" ], @@ -14717,6 +14852,15 @@ }, "type": "array" }, + "idpType": { + "description": "Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.", + "enum": [ + "MANAGED_IDP", + "FIM_IDP", + "CUSTOM_IDP" + ], + "type": "string" + }, "oauthClientId": { "description": "The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -14785,7 +14929,6 @@ } }, "required": [ - "attributes", "id", "type" ], @@ -15258,7 +15401,8 @@ "provider": { "description": "LLM Provider.", "enum": [ - "OPENAI" + "OPENAI", + "AZURE_OPENAI" ], "type": "string" }, @@ -15337,7 +15481,8 @@ "provider": { "description": "LLM Provider.", "enum": [ - "OPENAI" + "OPENAI", + "AZURE_OPENAI" ], "type": "string" }, @@ -15450,7 +15595,8 @@ "provider": { "description": "LLM Provider.", "enum": [ - "OPENAI" + "OPENAI", + "AZURE_OPENAI" ], "type": "string" }, @@ -23214,6 +23360,8 @@ "visualizationIds": { "description": "List of visualization ids to be exported. Note that only one visualization is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -23223,6 +23371,8 @@ "widgetIds": { "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -23528,6 +23678,19 @@ ], "type": "object" }, + "SwitchIdentityProviderRequest": { + "properties": { + "idpId": { + "description": "Identity provider ID to set as active for the organization.", + "example": "my-idp-123", + "type": "string" + } + }, + "required": [ + "idpId" + ], + "type": "object" + }, "Table": { "allOf": [ { @@ -23762,6 +23925,16 @@ "$ref": "#/components/schemas/Webhook" } ] + }, + "externalRecipients": { + "description": "External recipients of the test result.", + "items": { + "$ref": "#/components/schemas/AutomationExternalRecipient" + }, + "maxItems": 1, + "nullable": true, + "type": "array", + "uniqueItems": true } }, "required": [ @@ -24544,6 +24717,7 @@ "$ref": "#/components/schemas/WebhookMessageData" }, "timestamp": { + "format": "date-time", "type": "string" }, "type": { @@ -24569,6 +24743,12 @@ "automation": { "$ref": "#/components/schemas/WebhookAutomationInfo" }, + "dashboardTabularExports": { + "items": { + "$ref": "#/components/schemas/ExportResult" + }, + "type": "array" + }, "details": { "additionalProperties": { "type": "string" @@ -25806,6 +25986,32 @@ ] } }, + "/api/v1/actions/organization/switchActiveIdentityProvider": { + "post": { + "description": "Switch the active identity provider for the organization. Requires MANAGE permission on the organization.", + "operationId": "switchActiveIdentityProvider", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwitchIdentityProviderRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Switch Active Identity Provider", + "tags": [ + "Organization", + "actions" + ] + } + }, "/api/v1/actions/resolveEntitlements": { "get": { "description": "Resolves values of available entitlements for the organization.", @@ -32157,6 +32363,7 @@ } }, "tags": [ + "Notification Channels", "entities", "organization-model-controller" ] @@ -32192,6 +32399,7 @@ } }, "tags": [ + "Notification Channels", "entities", "organization-model-controller" ] diff --git a/schemas/gooddata-automation-client.json b/schemas/gooddata-automation-client.json index 7a999e08e..c15f3de8b 100644 --- a/schemas/gooddata-automation-client.json +++ b/schemas/gooddata-automation-client.json @@ -110,6 +110,13 @@ "analyticalDashboard": { "$ref": "#/components/schemas/DeclarativeAnalyticalDashboardIdentifier" }, + "dashboardTabularExports": { + "items": { + "$ref": "#/components/schemas/AutomationDashboardTabularExport" + }, + "type": "array", + "uniqueItems": true + }, "description": { "maxLength": 255, "type": "string" @@ -596,6 +603,49 @@ ], "type": "object" }, + "AttributeElements": { + "oneOf": [ + { + "$ref": "#/components/schemas/AttributeElementsByRef" + }, + { + "$ref": "#/components/schemas/AttributeElementsByValue" + } + ], + "type": "object" + }, + "AttributeElementsByRef": { + "properties": { + "uris": { + "description": "List of attribute elements by reference", + "items": { + "nullable": true, + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "uris" + ], + "type": "object" + }, + "AttributeElementsByValue": { + "properties": { + "values": { + "description": "List of attribute elements by value", + "items": { + "nullable": true, + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "values" + ], + "type": "object" + }, "AttributeFilter": { "description": "Abstract filter definition type attributes", "oneOf": [ @@ -608,6 +658,21 @@ ], "type": "object" }, + "AttributeFilterByDate": { + "properties": { + "filterLocalIdentifier": { + "type": "string" + }, + "isCommonDate": { + "type": "boolean" + } + }, + "required": [ + "filterLocalIdentifier", + "isCommonDate" + ], + "type": "object" + }, "AttributeFilterElements": { "description": "Filter on specific set of label values.", "properties": { @@ -630,6 +695,21 @@ ], "type": "object" }, + "AttributeFilterParent": { + "properties": { + "filterLocalIdentifier": { + "type": "string" + }, + "over": { + "$ref": "#/components/schemas/Over" + } + }, + "required": [ + "filterLocalIdentifier", + "over" + ], + "type": "object" + }, "AttributeItem": { "properties": { "label": { @@ -687,6 +767,17 @@ ], "type": "object" }, + "AutomationDashboardTabularExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/DashboardTabularExportRequestV2" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, "AutomationExternalRecipient": { "properties": { "email": { @@ -936,6 +1027,224 @@ }, "type": "object" }, + "DashboardAttributeFilter": { + "properties": { + "attributeFilter": { + "properties": { + "attributeElements": { + "$ref": "#/components/schemas/AttributeElements" + }, + "displayForm": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "filterElementsBy": { + "items": { + "$ref": "#/components/schemas/AttributeFilterParent" + }, + "type": "array" + }, + "filterElementsByDate": { + "items": { + "$ref": "#/components/schemas/AttributeFilterByDate" + }, + "type": "array" + }, + "localIdentifier": { + "type": "string" + }, + "negativeSelection": { + "type": "boolean" + }, + "selectionMode": { + "enum": [ + "single", + "multi" + ], + "type": "string" + }, + "title": { + "type": "string" + }, + "validateElementsBy": { + "items": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "type": "array" + } + }, + "required": [ + "attributeElements", + "displayForm", + "negativeSelection" + ], + "type": "object" + } + }, + "required": [ + "attributeFilter" + ], + "type": "object" + }, + "DashboardDateFilter": { + "properties": { + "dateFilter": { + "properties": { + "attribute": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "dataSet": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "from": { + "oneOf": [ + { + "type": "string" + }, + { + "format": "int32", + "type": "integer" + } + ] + }, + "granularity": { + "enum": [ + "ALL_TIME_GRANULARITY", + "GDC.time.year", + "GDC.time.week_us", + "GDC.time.week_in_year", + "GDC.time.week_in_quarter", + "GDC.time.week", + "GDC.time.euweek_in_year", + "GDC.time.euweek_in_quarter", + "GDC.time.quarter", + "GDC.time.quarter_in_year", + "GDC.time.month", + "GDC.time.month_in_quarter", + "GDC.time.month_in_year", + "GDC.time.day_in_year", + "GDC.time.day_in_quarter", + "GDC.time.day_in_month", + "GDC.time.day_in_week", + "GDC.time.day_in_euweek", + "GDC.time.date", + "GDC.time.hour", + "GDC.time.hour_in_day", + "GDC.time.minute", + "GDC.time.minute_in_hour" + ], + "type": "string" + }, + "localIdentifier": { + "type": "string" + }, + "to": { + "oneOf": [ + { + "type": "string" + }, + { + "format": "int32", + "type": "integer" + } + ] + }, + "type": { + "enum": [ + "relative", + "absolute" + ], + "type": "string" + } + }, + "required": [ + "granularity", + "type" + ], + "type": "object" + } + }, + "required": [ + "dateFilter" + ], + "type": "object" + }, + "DashboardExportSettings": { + "description": "Additional settings.", + "properties": { + "exportInfo": { + "default": false, + "description": "If true, the export will contain the information about the exported date and dashboard filters.", + "example": true, + "type": "boolean" + }, + "mergeHeaders": { + "default": false, + "description": "Merge equal headers in neighbouring cells. Used for [XLSX] format only.", + "example": true, + "type": "boolean" + } + }, + "type": "object" + }, + "DashboardFilter": { + "oneOf": [ + { + "$ref": "#/components/schemas/DashboardAttributeFilter" + }, + { + "$ref": "#/components/schemas/DashboardDateFilter" + } + ], + "type": "object" + }, + "DashboardTabularExportRequestV2": { + "description": "Export request object describing the export properties for dashboard tabular exports (v2 with dashboardId).", + "properties": { + "dashboardFiltersOverride": { + "description": "List of filters that will be used instead of the default dashboard filters.", + "items": { + "$ref": "#/components/schemas/DashboardFilter" + }, + "type": "array" + }, + "dashboardId": { + "description": "Dashboard identifier", + "example": "761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + "type": "string" + }, + "fileName": { + "description": "Filename of downloaded file without extension.", + "example": "result", + "type": "string" + }, + "format": { + "description": "Requested tabular export type.", + "enum": [ + "XLSX" + ], + "example": "XLSX", + "type": "string" + }, + "settings": { + "$ref": "#/components/schemas/DashboardExportSettings" + }, + "widgetIds": { + "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", + "items": { + "type": "string" + }, + "maxItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "dashboardId", + "fileName", + "format" + ], + "type": "object" + }, "DateFilter": { "description": "Abstract filter definition type for dates.", "oneOf": [ @@ -948,6 +1257,17 @@ ], "type": "object" }, + "DateValue": { + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, "DeclarativeAnalyticalDashboardIdentifier": { "description": "An analytical dashboard identifier.", "properties": { @@ -1155,6 +1475,47 @@ ], "type": "object" }, + "IdentifierRef": { + "properties": { + "identifier": { + "properties": { + "id": { + "type": "string" + }, + "type": { + "enum": [ + "analyticalDashboard", + "attribute", + "attributeHierarchy", + "dashboardPlugin", + "dataset", + "fact", + "label", + "metric", + "userDataFilter", + "exportDefinition", + "automation", + "prompt", + "visualizationObject", + "filterContext", + "workspaceSettings", + "customApplicationSetting", + "workspaceDataFilter", + "workspaceDataFilterSetting", + "filterView" + ], + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + } + }, + "type": "object" + }, "ImageExportRequest": { "description": "Export request object describing the export properties and metadata for image exports.", "properties": { @@ -1182,6 +1543,8 @@ "widgetIds": { "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -1548,6 +1911,20 @@ ], "type": "object" }, + "Over": { + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "type": "array" + } + }, + "required": [ + "attributes" + ], + "type": "object" + }, "PdfTableStyle": { "description": "Custom CSS styles for the table. (PDF, HTML)", "example": [ @@ -2197,6 +2574,8 @@ "visualizationIds": { "description": "List of visualization ids to be exported. Note that only one visualization is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -2206,6 +2585,8 @@ "widgetIds": { "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -2346,6 +2727,16 @@ "$ref": "#/components/schemas/Webhook" } ] + }, + "externalRecipients": { + "description": "External recipients of the test result.", + "items": { + "$ref": "#/components/schemas/AutomationExternalRecipient" + }, + "maxItems": 1, + "nullable": true, + "type": "array", + "uniqueItems": true } }, "required": [ @@ -2525,6 +2916,7 @@ "$ref": "#/components/schemas/WebhookMessageData" }, "timestamp": { + "format": "date-time", "type": "string" }, "type": { @@ -2550,6 +2942,12 @@ "automation": { "$ref": "#/components/schemas/WebhookAutomationInfo" }, + "dashboardTabularExports": { + "items": { + "$ref": "#/components/schemas/ExportResult" + }, + "type": "array" + }, "details": { "additionalProperties": { "type": "string" diff --git a/schemas/gooddata-export-client.json b/schemas/gooddata-export-client.json index d3a4abdb8..13fc90502 100644 --- a/schemas/gooddata-export-client.json +++ b/schemas/gooddata-export-client.json @@ -924,6 +924,8 @@ "widgetIds": { "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -1663,6 +1665,8 @@ "visualizationIds": { "description": "List of visualization ids to be exported. Note that only one visualization is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -1672,6 +1676,8 @@ "widgetIds": { "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, diff --git a/schemas/gooddata-metadata-client.json b/schemas/gooddata-metadata-client.json index 6d5a06a23..a5b5841a7 100644 --- a/schemas/gooddata-metadata-client.json +++ b/schemas/gooddata-metadata-client.json @@ -528,6 +528,49 @@ ], "type": "object" }, + "AttributeElements": { + "oneOf": [ + { + "$ref": "#/components/schemas/AttributeElementsByRef" + }, + { + "$ref": "#/components/schemas/AttributeElementsByValue" + } + ], + "type": "object" + }, + "AttributeElementsByRef": { + "properties": { + "uris": { + "description": "List of attribute elements by reference", + "items": { + "nullable": true, + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "uris" + ], + "type": "object" + }, + "AttributeElementsByValue": { + "properties": { + "values": { + "description": "List of attribute elements by value", + "items": { + "nullable": true, + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "values" + ], + "type": "object" + }, "AttributeFilter": { "description": "Abstract filter definition type attributes", "oneOf": [ @@ -540,6 +583,21 @@ ], "type": "object" }, + "AttributeFilterByDate": { + "properties": { + "filterLocalIdentifier": { + "type": "string" + }, + "isCommonDate": { + "type": "boolean" + } + }, + "required": [ + "filterLocalIdentifier", + "isCommonDate" + ], + "type": "object" + }, "AttributeFilterElements": { "description": "Filter on specific set of label values.", "properties": { @@ -562,6 +620,21 @@ ], "type": "object" }, + "AttributeFilterParent": { + "properties": { + "filterLocalIdentifier": { + "type": "string" + }, + "over": { + "$ref": "#/components/schemas/Over" + } + }, + "required": [ + "filterLocalIdentifier", + "over" + ], + "type": "object" + }, "AttributeItem": { "properties": { "label": { @@ -619,6 +692,17 @@ ], "type": "object" }, + "AutomationDashboardTabularExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/DashboardTabularExportRequestV2" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, "AutomationExternalRecipient": { "properties": { "email": { @@ -986,6 +1070,176 @@ }, "type": "object" }, + "DashboardAttributeFilter": { + "properties": { + "attributeFilter": { + "properties": { + "attributeElements": { + "$ref": "#/components/schemas/AttributeElements" + }, + "displayForm": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "filterElementsBy": { + "items": { + "$ref": "#/components/schemas/AttributeFilterParent" + }, + "type": "array" + }, + "filterElementsByDate": { + "items": { + "$ref": "#/components/schemas/AttributeFilterByDate" + }, + "type": "array" + }, + "localIdentifier": { + "type": "string" + }, + "negativeSelection": { + "type": "boolean" + }, + "selectionMode": { + "enum": [ + "single", + "multi" + ], + "type": "string" + }, + "title": { + "type": "string" + }, + "validateElementsBy": { + "items": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "type": "array" + } + }, + "required": [ + "attributeElements", + "displayForm", + "negativeSelection" + ], + "type": "object" + } + }, + "required": [ + "attributeFilter" + ], + "type": "object" + }, + "DashboardDateFilter": { + "properties": { + "dateFilter": { + "properties": { + "attribute": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "dataSet": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "from": { + "oneOf": [ + { + "type": "string" + }, + { + "format": "int32", + "type": "integer" + } + ] + }, + "granularity": { + "enum": [ + "ALL_TIME_GRANULARITY", + "GDC.time.year", + "GDC.time.week_us", + "GDC.time.week_in_year", + "GDC.time.week_in_quarter", + "GDC.time.week", + "GDC.time.euweek_in_year", + "GDC.time.euweek_in_quarter", + "GDC.time.quarter", + "GDC.time.quarter_in_year", + "GDC.time.month", + "GDC.time.month_in_quarter", + "GDC.time.month_in_year", + "GDC.time.day_in_year", + "GDC.time.day_in_quarter", + "GDC.time.day_in_month", + "GDC.time.day_in_week", + "GDC.time.day_in_euweek", + "GDC.time.date", + "GDC.time.hour", + "GDC.time.hour_in_day", + "GDC.time.minute", + "GDC.time.minute_in_hour" + ], + "type": "string" + }, + "localIdentifier": { + "type": "string" + }, + "to": { + "oneOf": [ + { + "type": "string" + }, + { + "format": "int32", + "type": "integer" + } + ] + }, + "type": { + "enum": [ + "relative", + "absolute" + ], + "type": "string" + } + }, + "required": [ + "granularity", + "type" + ], + "type": "object" + } + }, + "required": [ + "dateFilter" + ], + "type": "object" + }, + "DashboardExportSettings": { + "description": "Additional settings.", + "properties": { + "exportInfo": { + "default": false, + "description": "If true, the export will contain the information about the exported date and dashboard filters.", + "example": true, + "type": "boolean" + }, + "mergeHeaders": { + "default": false, + "description": "Merge equal headers in neighbouring cells. Used for [XLSX] format only.", + "example": true, + "type": "boolean" + } + }, + "type": "object" + }, + "DashboardFilter": { + "oneOf": [ + { + "$ref": "#/components/schemas/DashboardAttributeFilter" + }, + { + "$ref": "#/components/schemas/DashboardDateFilter" + } + ], + "type": "object" + }, "DashboardPermissions": { "properties": { "rules": { @@ -1075,6 +1329,54 @@ ], "type": "object" }, + "DashboardTabularExportRequestV2": { + "description": "Export request object describing the export properties for dashboard tabular exports (v2 with dashboardId).", + "properties": { + "dashboardFiltersOverride": { + "description": "List of filters that will be used instead of the default dashboard filters.", + "items": { + "$ref": "#/components/schemas/DashboardFilter" + }, + "type": "array" + }, + "dashboardId": { + "description": "Dashboard identifier", + "example": "761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + "type": "string" + }, + "fileName": { + "description": "Filename of downloaded file without extension.", + "example": "result", + "type": "string" + }, + "format": { + "description": "Requested tabular export type.", + "enum": [ + "XLSX" + ], + "example": "XLSX", + "type": "string" + }, + "settings": { + "$ref": "#/components/schemas/DashboardExportSettings" + }, + "widgetIds": { + "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", + "items": { + "type": "string" + }, + "maxItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "dashboardId", + "fileName", + "format" + ], + "type": "object" + }, "DataSourcePermissionAssignment": { "description": "Data source permission assignments", "properties": { @@ -1220,6 +1522,17 @@ ], "type": "object" }, + "DateValue": { + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, "DeclarativeAnalyticalDashboard": { "properties": { "content": { @@ -1652,6 +1965,13 @@ "createdBy": { "$ref": "#/components/schemas/DeclarativeUserIdentifier" }, + "dashboardTabularExports": { + "items": { + "$ref": "#/components/schemas/AutomationDashboardTabularExport" + }, + "type": "array", + "uniqueItems": true + }, "description": { "maxLength": 255, "type": "string" @@ -2671,17 +2991,26 @@ "type": "string" }, "identifiers": { - "description": "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.", + "description": "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.", "example": [ "gooddata.com" ], "items": { - "description": "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.", + "description": "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.", "example": "[\"gooddata.com\"]", "type": "string" }, "type": "array" }, + "idpType": { + "description": "Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.", + "enum": [ + "MANAGED_IDP", + "FIM_IDP", + "CUSTOM_IDP" + ], + "type": "string" + }, "oauthClientId": { "description": "The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -2735,8 +3064,7 @@ } }, "required": [ - "id", - "identifiers" + "id" ], "type": "object" }, @@ -3552,9 +3880,6 @@ "DeclarativeSourceFactReference": { "description": "Aggregated awareness source fact reference.", "properties": { - "id": { - "$ref": "#/components/schemas/FactIdentifier" - }, "operation": { "description": "Aggregation operation.", "enum": [ @@ -3564,11 +3889,14 @@ ], "example": "SUM", "type": "string" + }, + "reference": { + "$ref": "#/components/schemas/FactIdentifier" } }, "required": [ - "id", - "operation" + "operation", + "reference" ], "type": "object" }, @@ -5007,6 +5335,47 @@ ], "type": "object" }, + "IdentifierRef": { + "properties": { + "identifier": { + "properties": { + "id": { + "type": "string" + }, + "type": { + "enum": [ + "analyticalDashboard", + "attribute", + "attributeHierarchy", + "dashboardPlugin", + "dataset", + "fact", + "label", + "metric", + "userDataFilter", + "exportDefinition", + "automation", + "prompt", + "visualizationObject", + "filterContext", + "workspaceSettings", + "customApplicationSetting", + "workspaceDataFilter", + "workspaceDataFilterSetting", + "filterView" + ], + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + } + }, + "type": "object" + }, "ImageExportRequest": { "description": "Export request object describing the export properties and metadata for image exports.", "properties": { @@ -5034,6 +5403,8 @@ "widgetIds": { "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -6541,6 +6912,20 @@ "areRelationsValid": { "type": "boolean" }, + "dashboardTabularExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/DashboardTabularExportRequestV2" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "description": { "maxLength": 10000, "type": "string" @@ -6842,6 +7227,20 @@ "format": "date-time", "type": "string" }, + "dashboardTabularExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/DashboardTabularExportRequestV2" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "description": { "maxLength": 10000, "type": "string" @@ -7247,6 +7646,20 @@ "areRelationsValid": { "type": "boolean" }, + "dashboardTabularExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/DashboardTabularExportRequestV2" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "description": { "maxLength": 10000, "type": "string" @@ -11989,7 +12402,7 @@ "type": "object" }, "identifiers": { - "description": "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.", + "description": "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.", "example": [ "gooddata.com" ], @@ -11998,6 +12411,15 @@ }, "type": "array" }, + "idpType": { + "description": "Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.", + "enum": [ + "MANAGED_IDP", + "FIM_IDP", + "CUSTOM_IDP" + ], + "type": "string" + }, "oauthClientId": { "description": "The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -12048,9 +12470,6 @@ "type": "string" } }, - "required": [ - "identifiers" - ], "type": "object" }, "id": { @@ -12069,7 +12488,6 @@ } }, "required": [ - "attributes", "id", "type" ], @@ -12119,7 +12537,7 @@ "type": "object" }, "identifiers": { - "description": "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.", + "description": "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.", "example": [ "gooddata.com" ], @@ -12128,6 +12546,15 @@ }, "type": "array" }, + "idpType": { + "description": "Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.", + "enum": [ + "MANAGED_IDP", + "FIM_IDP", + "CUSTOM_IDP" + ], + "type": "string" + }, "oauthClientId": { "description": "The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -12168,9 +12595,6 @@ "type": "string" } }, - "required": [ - "identifiers" - ], "type": "object" }, "id": { @@ -12189,7 +12613,6 @@ } }, "required": [ - "attributes", "id", "type" ], @@ -12260,7 +12683,7 @@ "type": "object" }, "identifiers": { - "description": "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.", + "description": "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.", "example": [ "gooddata.com" ], @@ -12269,6 +12692,15 @@ }, "type": "array" }, + "idpType": { + "description": "Type of IdP for management purposes. MANAGED_IDP represents a GoodData managed IdP used in single OIDC setup, which is protected from altering/deletion. FIM_IDP represents a GoodData managed IdP used in federated identity management setup, which is protected from altering/deletion. CUSTOM_IDP represents customer's own IdP, protected from deletion if currently used by org for authentication, deletable otherwise.", + "enum": [ + "MANAGED_IDP", + "FIM_IDP", + "CUSTOM_IDP" + ], + "type": "string" + }, "oauthClientId": { "description": "The OAuth client id of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, @@ -12337,7 +12769,6 @@ } }, "required": [ - "attributes", "id", "type" ], @@ -12810,7 +13241,8 @@ "provider": { "description": "LLM Provider.", "enum": [ - "OPENAI" + "OPENAI", + "AZURE_OPENAI" ], "type": "string" }, @@ -12889,7 +13321,8 @@ "provider": { "description": "LLM Provider.", "enum": [ - "OPENAI" + "OPENAI", + "AZURE_OPENAI" ], "type": "string" }, @@ -13002,7 +13435,8 @@ "provider": { "description": "LLM Provider.", "enum": [ - "OPENAI" + "OPENAI", + "AZURE_OPENAI" ], "type": "string" }, @@ -18807,6 +19241,20 @@ ], "type": "object" }, + "Over": { + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "type": "array" + } + }, + "required": [ + "attributes" + ], + "type": "object" + }, "PageMetadata": { "properties": { "number": { @@ -19906,6 +20354,8 @@ "visualizationIds": { "description": "List of visualization ids to be exported. Note that only one visualization is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -19915,6 +20365,8 @@ "widgetIds": { "description": "List of widget identifiers to be exported. Note that only one widget is currently supported.", "items": { + "maxLength": 255, + "minLength": 1, "type": "string" }, "maxItems": 1, @@ -20013,6 +20465,19 @@ ], "type": "object" }, + "SwitchIdentityProviderRequest": { + "properties": { + "idpId": { + "description": "Identity provider ID to set as active for the organization.", + "example": "my-idp-123", + "type": "string" + } + }, + "required": [ + "idpId" + ], + "type": "object" + }, "TableOverride": { "description": "Table override settings.", "properties": { @@ -21081,6 +21546,32 @@ ] } }, + "/api/v1/actions/organization/switchActiveIdentityProvider": { + "post": { + "description": "Switch the active identity provider for the organization. Requires MANAGE permission on the organization.", + "operationId": "switchActiveIdentityProvider", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwitchIdentityProviderRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Switch Active Identity Provider", + "tags": [ + "Organization", + "actions" + ] + } + }, "/api/v1/actions/resolveEntitlements": { "get": { "description": "Resolves values of available entitlements for the organization.", @@ -25192,6 +25683,7 @@ } }, "tags": [ + "Notification Channels", "entities", "organization-model-controller" ] @@ -25227,6 +25719,7 @@ } }, "tags": [ + "Notification Channels", "entities", "organization-model-controller" ] From 592b5dd333944c4dce4cf6a4015088ff06df57c0 Mon Sep 17 00:00:00 2001 From: Christopher Bonilla Date: Tue, 1 Jul 2025 04:12:40 +0200 Subject: [PATCH 2/2] feat: IdP management updates - Add new fields for IdPs - Add link from org to IdP + org to/from api funcs - Add switch_active_identity_provider for new action endpoint JIRA: LX-1187 risk: low --- .../entity_model/identity_provider.py | 23 +++++++++- .../organization/entity_model/organization.py | 46 ++++++++++++++++++- .../organization/layout/identity_provider.py | 5 ++ .../catalog/organization/service.py | 26 +++++++++++ 4 files changed, 97 insertions(+), 3 deletions(-) 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 2ba992fbc..0e850ff3e 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 @@ -8,7 +8,6 @@ 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 @@ -43,6 +42,11 @@ def init( oauth_client_secret: Optional[str] = None, oauth_issuer_location: Optional[str] = None, saml_metadata: Optional[str] = None, + idp_type: Optional[str] = None, + oauth_issuer_id: Optional[str] = None, + oauth_subject_id_claim: Optional[str] = None, + oauth_custom_auth_attributes: Optional[dict[str, str]] = None, + oauth_custom_scopes: Optional[list[str]] = None, ) -> CatalogIdentityProvider: return cls( id=identity_provider_id, @@ -53,6 +57,11 @@ def init( oauth_client_secret=oauth_client_secret, oauth_issuer_location=oauth_issuer_location, saml_metadata=saml_metadata, + idp_type=idp_type, + oauth_issuer_id=oauth_issuer_id, + oauth_subject_id_claim=oauth_subject_id_claim, + oauth_custom_auth_attributes=oauth_custom_auth_attributes, + oauth_custom_scopes=oauth_custom_scopes, ), ) @@ -66,6 +75,11 @@ def from_api(cls, entity: dict[str, Any]) -> CatalogIdentityProvider: oauth_client_secret=safeget(ea, ["oauth_client_secret"]), oauth_issuer_location=safeget(ea, ["oauth_issuer_location"]), saml_metadata=safeget(ea, ["saml_metadata"]), + idp_type=safeget(ea, ["idp_type"]), + oauth_issuer_id=safeget(ea, ["oauth_issuer_id"]), + oauth_subject_id_claim=safeget(ea, ["oauth_subject_id_claim"]), + oauth_custom_auth_attributes=safeget(ea, ["oauth_custom_auth_attributes"]), + oauth_custom_scopes=safeget(ea, ["oauth_custom_scopes"]), ) return cls( id=entity["id"], @@ -76,7 +90,7 @@ def from_api(cls, entity: dict[str, Any]) -> CatalogIdentityProvider: def to_api_patch(cls, identity_provider_id: str, attributes: dict) -> JsonApiIdentityProviderPatchDocument: return JsonApiIdentityProviderPatchDocument( data=JsonApiIdentityProviderPatch( - id=identity_provider_id, attributes=JsonApiIdentityProviderPatchAttributes(**attributes) + id=identity_provider_id, attributes=JsonApiIdentityProviderInAttributes(**attributes) ) ) @@ -89,6 +103,11 @@ class CatalogIdentityProviderAttributes(Base): oauth_client_secret: Optional[str] = None oauth_issuer_location: Optional[str] = None saml_metadata: Optional[str] = None + idp_type: Optional[str] = None + oauth_issuer_id: Optional[str] = None + oauth_subject_id_claim: Optional[str] = None + oauth_custom_auth_attributes: Optional[dict[str, str]] = None + oauth_custom_scopes: Optional[list[str]] = None @staticmethod def client_class() -> type[JsonApiIdentityProviderInAttributes]: diff --git a/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/organization.py b/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/organization.py index f5d95bd4e..765afc3fc 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/organization.py +++ b/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/organization.py @@ -1,14 +1,20 @@ # (C) 2022 GoodData Corporation from __future__ import annotations -from typing import Optional +from typing import Any, Optional import attr +from gooddata_api_client.model.json_api_identity_provider_to_one_linkage import JsonApiIdentityProviderToOneLinkage from gooddata_api_client.model.json_api_organization_in import JsonApiOrganizationIn from gooddata_api_client.model.json_api_organization_in_attributes import JsonApiOrganizationInAttributes from gooddata_api_client.model.json_api_organization_in_document import JsonApiOrganizationInDocument +from gooddata_api_client.model.json_api_organization_in_relationships import JsonApiOrganizationInRelationships +from gooddata_api_client.model.json_api_organization_in_relationships_identity_provider import ( + JsonApiOrganizationInRelationshipsIdentityProvider, +) from gooddata_sdk.catalog.base import Base +from gooddata_sdk.utils import safeget @attr.s(auto_attribs=True, kw_only=True) @@ -30,11 +36,49 @@ def to_api(self, oauth_client_secret: Optional[str] = None) -> JsonApiOrganizati class CatalogOrganization(Base): id: str attributes: CatalogOrganizationAttributes + identity_provider_id: Optional[str] = None @staticmethod def client_class() -> type[JsonApiOrganizationIn]: return JsonApiOrganizationIn + @classmethod + def from_api(cls, entity: dict[str, Any]) -> CatalogOrganization: + ea = entity.get("attributes", {}) + er = entity.get("relationships", {}) + + attributes = CatalogOrganizationAttributes( + name=safeget(ea, ["name"]), + hostname=safeget(ea, ["hostname"]), + allowed_origins=safeget(ea, ["allowed_origins"]), + oauth_issuer_location=safeget(ea, ["oauth_issuer_location"]), + oauth_client_id=safeget(ea, ["oauth_client_id"]), + ) + + identity_provider_id = safeget(er, ["identityProvider", "data", "id"]) + + return cls( + id=entity["id"], + attributes=attributes, + identity_provider_id=identity_provider_id, + ) + + def to_api(self) -> JsonApiOrganizationIn: + kwargs = {} + if self.identity_provider_id: + kwargs["relationships"] = JsonApiOrganizationInRelationships( + identity_provider=JsonApiOrganizationInRelationshipsIdentityProvider( + data=JsonApiIdentityProviderToOneLinkage(id=self.identity_provider_id, type="identityProvider") + ) + ) + + return JsonApiOrganizationIn( + id=self.id, + type="organization", + attributes=self.attributes.to_api(), + **kwargs, + ) + @attr.s(auto_attribs=True, kw_only=True) class CatalogOrganizationAttributes(Base): 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 f1a5509d3..1a403e7e5 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/organization/layout/identity_provider.py +++ b/gooddata-sdk/gooddata_sdk/catalog/organization/layout/identity_provider.py @@ -17,6 +17,11 @@ class CatalogDeclarativeIdentityProvider(Base): oauth_client_secret: Optional[str] = None oauth_issuer_location: Optional[str] = None saml_metadata: Optional[str] = None + idp_type: Optional[str] = None + oauth_issuer_id: Optional[str] = None + oauth_subject_id_claim: Optional[str] = None + oauth_custom_auth_attributes: Optional[dict[str, str]] = None + oauth_custom_scopes: Optional[list[str]] = None @staticmethod def client_class() -> builtins.type[DeclarativeIdentityProvider]: diff --git a/gooddata-sdk/gooddata_sdk/catalog/organization/service.py b/gooddata-sdk/gooddata_sdk/catalog/organization/service.py index 21f919f13..134a3cd45 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/organization/service.py +++ b/gooddata-sdk/gooddata_sdk/catalog/organization/service.py @@ -14,6 +14,7 @@ ) from gooddata_api_client.model.json_api_identity_provider_in_document import JsonApiIdentityProviderInDocument from gooddata_api_client.model.json_api_organization_setting_in_document import JsonApiOrganizationSettingInDocument +from gooddata_api_client.model.switch_identity_provider_request import SwitchIdentityProviderRequest from gooddata_sdk import CatalogDeclarativeExportTemplate, CatalogExportTemplate from gooddata_sdk.catalog.catalog_service_base import CatalogServiceBase @@ -747,3 +748,28 @@ def put_declarative_export_templates(self, export_templates: list[CatalogDeclara self._layout_api.set_export_templates( declarative_export_templates=DeclarativeExportTemplates(export_templates=api_export_templates) ) + + def switch_active_identity_provider(self, identity_provider_id: str) -> None: + """Switch the active identity provider for the organization. + + Args: + identity_provider_id (str): + Identity provider identification string e.g. "auth0" + + Returns: + None + + Raises: + ValueError: + Identity provider does not exist or operation failed. + """ + try: + request = SwitchIdentityProviderRequest(idp_id=identity_provider_id) + self._actions_api.switch_active_identity_provider(request, _check_return_type=False) + + except NotFoundException: + raise ValueError( + f"Cannot switch to identity provider {identity_provider_id}. This identity provider does not exist." + ) + except Exception as e: + raise ValueError(f"Error switching active identity provider: {str(e)}")