diff --git a/gooddata-api-client/.openapi-generator/FILES b/gooddata-api-client/.openapi-generator/FILES index f4fdf242e..33ad92fd5 100644 --- a/gooddata-api-client/.openapi-generator/FILES +++ b/gooddata-api-client/.openapi-generator/FILES @@ -1,6 +1,7 @@ .gitignore README.md docs/AFM.md +docs/AFMFiltersInner.md docs/AIApi.md docs/APITokensApi.md docs/AbsoluteDateFilter.md @@ -43,6 +44,9 @@ docs/ArithmeticMeasureDefinition.md docs/ArithmeticMeasureDefinitionArithmeticMeasure.md docs/AssigneeIdentifier.md docs/AssigneeRule.md +docs/AttributeElements.md +docs/AttributeElementsByRef.md +docs/AttributeElementsByValue.md docs/AttributeExecutionResultHeader.md docs/AttributeFilter.md docs/AttributeFilterByDate.md @@ -66,7 +70,9 @@ docs/AutomationImageExport.md docs/AutomationMetadata.md docs/AutomationNotification.md docs/AutomationNotificationAllOf.md +docs/AutomationRawExport.md docs/AutomationSchedule.md +docs/AutomationSlidesExport.md docs/AutomationTabularExport.md docs/AutomationVisualExport.md docs/AutomationsApi.md @@ -106,16 +112,15 @@ docs/CustomMetric.md docs/CustomOverride.md docs/DashboardAttributeFilter.md docs/DashboardAttributeFilterAttributeFilter.md -docs/DashboardAttributeFilterAttributeFilterAllOf.md docs/DashboardDateFilter.md docs/DashboardDateFilterDateFilter.md -docs/DashboardDateFilterDateFilterAllOf.md +docs/DashboardDateFilterDateFilterFrom.md +docs/DashboardExportSettings.md docs/DashboardFilter.md docs/DashboardPermissions.md docs/DashboardPermissionsAssignment.md docs/DashboardSlidesTemplate.md docs/DashboardTabularExportRequest.md -docs/DashboardTabularExportRequestDashboardFiltersOverrideInner.md docs/DashboardsApi.md docs/DataColumnLocator.md docs/DataColumnLocators.md @@ -135,6 +140,7 @@ docs/DateAbsoluteFilterAllOf.md docs/DateFilter.md docs/DateRelativeFilter.md docs/DateRelativeFilterAllOf.md +docs/DateValue.md docs/DeclarativeAnalyticalDashboard.md docs/DeclarativeAnalyticalDashboardExtension.md docs/DeclarativeAnalyticalDashboardIdentifier.md @@ -171,6 +177,7 @@ docs/DeclarativeFact.md docs/DeclarativeFilterContext.md docs/DeclarativeFilterView.md docs/DeclarativeIdentityProvider.md +docs/DeclarativeIdentityProviderIdentifier.md docs/DeclarativeJwk.md docs/DeclarativeJwkSpecification.md docs/DeclarativeLabel.md @@ -189,6 +196,7 @@ docs/DeclarativeReferenceSource.md docs/DeclarativeRsaSpecification.md docs/DeclarativeSetting.md docs/DeclarativeSingleWorkspacePermission.md +docs/DeclarativeSourceFactReference.md docs/DeclarativeTable.md docs/DeclarativeTables.md docs/DeclarativeTheme.md @@ -252,6 +260,7 @@ docs/ExportDefinitionsApi.md docs/ExportRequest.md docs/ExportResponse.md docs/ExportResult.md +docs/FactIdentifier.md docs/FactsApi.md docs/File.md docs/Filter.md @@ -278,6 +287,8 @@ docs/Histogram.md docs/HistogramBucket.md docs/HistogramProperties.md docs/IdentifierDuplications.md +docs/IdentifierRef.md +docs/IdentifierRefIdentifier.md docs/IdentityProvidersApi.md docs/ImageExportApi.md docs/ImageExportRequest.md @@ -362,7 +373,9 @@ docs/JsonApiAutomationInAttributesAlert.md docs/JsonApiAutomationInAttributesExternalRecipientsInner.md docs/JsonApiAutomationInAttributesImageExportsInner.md docs/JsonApiAutomationInAttributesMetadata.md +docs/JsonApiAutomationInAttributesRawExportsInner.md docs/JsonApiAutomationInAttributesSchedule.md +docs/JsonApiAutomationInAttributesSlidesExportsInner.md docs/JsonApiAutomationInAttributesTabularExportsInner.md docs/JsonApiAutomationInAttributesVisualExportsInner.md docs/JsonApiAutomationInDocument.md @@ -514,10 +527,13 @@ docs/JsonApiFactLinkage.md docs/JsonApiFactOut.md docs/JsonApiFactOutAttributes.md docs/JsonApiFactOutDocument.md +docs/JsonApiFactOutIncludes.md docs/JsonApiFactOutList.md docs/JsonApiFactOutRelationships.md +docs/JsonApiFactOutRelationshipsSourceFact.md docs/JsonApiFactOutWithLinks.md docs/JsonApiFactToManyLinkage.md +docs/JsonApiFactToOneLinkage.md docs/JsonApiFilterContextIn.md docs/JsonApiFilterContextInDocument.md docs/JsonApiFilterContextLinkage.md @@ -548,6 +564,7 @@ docs/JsonApiFilterViewPatchDocument.md docs/JsonApiIdentityProviderIn.md docs/JsonApiIdentityProviderInAttributes.md docs/JsonApiIdentityProviderInDocument.md +docs/JsonApiIdentityProviderLinkage.md docs/JsonApiIdentityProviderOut.md docs/JsonApiIdentityProviderOutAttributes.md docs/JsonApiIdentityProviderOutDocument.md @@ -556,6 +573,7 @@ docs/JsonApiIdentityProviderOutWithLinks.md docs/JsonApiIdentityProviderPatch.md docs/JsonApiIdentityProviderPatchAttributes.md docs/JsonApiIdentityProviderPatchDocument.md +docs/JsonApiIdentityProviderToOneLinkage.md docs/JsonApiJwkIn.md docs/JsonApiJwkInAttributes.md docs/JsonApiJwkInAttributesContent.md @@ -605,6 +623,11 @@ docs/JsonApiMetricPatchDocument.md docs/JsonApiMetricPostOptionalId.md docs/JsonApiMetricPostOptionalIdDocument.md docs/JsonApiMetricToManyLinkage.md +docs/JsonApiNotificationChannelIdentifierOut.md +docs/JsonApiNotificationChannelIdentifierOutAttributes.md +docs/JsonApiNotificationChannelIdentifierOutDocument.md +docs/JsonApiNotificationChannelIdentifierOutList.md +docs/JsonApiNotificationChannelIdentifierOutWithLinks.md docs/JsonApiNotificationChannelIn.md docs/JsonApiNotificationChannelInAttributes.md docs/JsonApiNotificationChannelInAttributesDestination.md @@ -623,6 +646,8 @@ docs/JsonApiNotificationChannelToOneLinkage.md docs/JsonApiOrganizationIn.md docs/JsonApiOrganizationInAttributes.md docs/JsonApiOrganizationInDocument.md +docs/JsonApiOrganizationInRelationships.md +docs/JsonApiOrganizationInRelationshipsIdentityProvider.md docs/JsonApiOrganizationOut.md docs/JsonApiOrganizationOutAttributes.md docs/JsonApiOrganizationOutAttributesCacheSettings.md @@ -876,6 +901,7 @@ docs/RouteResult.md docs/RsaSpecification.md docs/RulePermission.md docs/RunningSection.md +docs/SavedVisualization.md docs/ScanRequest.md docs/ScanResultPdm.md docs/ScanSqlRequest.md @@ -1064,6 +1090,7 @@ gooddata_api_client/model/afm.py gooddata_api_client/model/afm_cancel_tokens.py gooddata_api_client/model/afm_execution.py gooddata_api_client/model/afm_execution_response.py +gooddata_api_client/model/afm_filters_inner.py gooddata_api_client/model/afm_identifier.py gooddata_api_client/model/afm_local_identifier.py gooddata_api_client/model/afm_object_identifier.py @@ -1093,6 +1120,9 @@ gooddata_api_client/model/arithmetic_measure_definition.py gooddata_api_client/model/arithmetic_measure_definition_arithmetic_measure.py gooddata_api_client/model/assignee_identifier.py gooddata_api_client/model/assignee_rule.py +gooddata_api_client/model/attribute_elements.py +gooddata_api_client/model/attribute_elements_by_ref.py +gooddata_api_client/model/attribute_elements_by_value.py gooddata_api_client/model/attribute_execution_result_header.py gooddata_api_client/model/attribute_filter.py gooddata_api_client/model/attribute_filter_by_date.py @@ -1114,7 +1144,9 @@ gooddata_api_client/model/automation_image_export.py gooddata_api_client/model/automation_metadata.py gooddata_api_client/model/automation_notification.py gooddata_api_client/model/automation_notification_all_of.py +gooddata_api_client/model/automation_raw_export.py gooddata_api_client/model/automation_schedule.py +gooddata_api_client/model/automation_slides_export.py gooddata_api_client/model/automation_tabular_export.py gooddata_api_client/model/automation_visual_export.py gooddata_api_client/model/available_assignees.py @@ -1148,16 +1180,15 @@ gooddata_api_client/model/custom_metric.py gooddata_api_client/model/custom_override.py gooddata_api_client/model/dashboard_attribute_filter.py gooddata_api_client/model/dashboard_attribute_filter_attribute_filter.py -gooddata_api_client/model/dashboard_attribute_filter_attribute_filter_all_of.py gooddata_api_client/model/dashboard_date_filter.py gooddata_api_client/model/dashboard_date_filter_date_filter.py -gooddata_api_client/model/dashboard_date_filter_date_filter_all_of.py +gooddata_api_client/model/dashboard_date_filter_date_filter_from.py +gooddata_api_client/model/dashboard_export_settings.py gooddata_api_client/model/dashboard_filter.py 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_dashboard_filters_override_inner.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 @@ -1172,6 +1203,7 @@ gooddata_api_client/model/date_absolute_filter_all_of.py gooddata_api_client/model/date_filter.py gooddata_api_client/model/date_relative_filter.py gooddata_api_client/model/date_relative_filter_all_of.py +gooddata_api_client/model/date_value.py gooddata_api_client/model/declarative_analytical_dashboard.py gooddata_api_client/model/declarative_analytical_dashboard_extension.py gooddata_api_client/model/declarative_analytical_dashboard_identifier.py @@ -1208,6 +1240,7 @@ gooddata_api_client/model/declarative_fact.py gooddata_api_client/model/declarative_filter_context.py gooddata_api_client/model/declarative_filter_view.py gooddata_api_client/model/declarative_identity_provider.py +gooddata_api_client/model/declarative_identity_provider_identifier.py gooddata_api_client/model/declarative_jwk.py gooddata_api_client/model/declarative_jwk_specification.py gooddata_api_client/model/declarative_label.py @@ -1226,6 +1259,7 @@ gooddata_api_client/model/declarative_reference_source.py gooddata_api_client/model/declarative_rsa_specification.py gooddata_api_client/model/declarative_setting.py gooddata_api_client/model/declarative_single_workspace_permission.py +gooddata_api_client/model/declarative_source_fact_reference.py gooddata_api_client/model/declarative_table.py gooddata_api_client/model/declarative_tables.py gooddata_api_client/model/declarative_theme.py @@ -1285,6 +1319,7 @@ gooddata_api_client/model/execution_settings.py gooddata_api_client/model/export_request.py gooddata_api_client/model/export_response.py gooddata_api_client/model/export_result.py +gooddata_api_client/model/fact_identifier.py gooddata_api_client/model/file.py gooddata_api_client/model/filter.py gooddata_api_client/model/filter_by.py @@ -1307,6 +1342,8 @@ gooddata_api_client/model/histogram.py gooddata_api_client/model/histogram_bucket.py gooddata_api_client/model/histogram_properties.py gooddata_api_client/model/identifier_duplications.py +gooddata_api_client/model/identifier_ref.py +gooddata_api_client/model/identifier_ref_identifier.py gooddata_api_client/model/image_export_request.py gooddata_api_client/model/in_platform.py gooddata_api_client/model/in_platform_all_of.py @@ -1387,7 +1424,9 @@ gooddata_api_client/model/json_api_automation_in_attributes_alert.py gooddata_api_client/model/json_api_automation_in_attributes_external_recipients_inner.py gooddata_api_client/model/json_api_automation_in_attributes_image_exports_inner.py gooddata_api_client/model/json_api_automation_in_attributes_metadata.py +gooddata_api_client/model/json_api_automation_in_attributes_raw_exports_inner.py gooddata_api_client/model/json_api_automation_in_attributes_schedule.py +gooddata_api_client/model/json_api_automation_in_attributes_slides_exports_inner.py gooddata_api_client/model/json_api_automation_in_attributes_tabular_exports_inner.py gooddata_api_client/model/json_api_automation_in_attributes_visual_exports_inner.py gooddata_api_client/model/json_api_automation_in_document.py @@ -1539,10 +1578,13 @@ gooddata_api_client/model/json_api_fact_linkage.py gooddata_api_client/model/json_api_fact_out.py gooddata_api_client/model/json_api_fact_out_attributes.py gooddata_api_client/model/json_api_fact_out_document.py +gooddata_api_client/model/json_api_fact_out_includes.py gooddata_api_client/model/json_api_fact_out_list.py gooddata_api_client/model/json_api_fact_out_relationships.py +gooddata_api_client/model/json_api_fact_out_relationships_source_fact.py gooddata_api_client/model/json_api_fact_out_with_links.py gooddata_api_client/model/json_api_fact_to_many_linkage.py +gooddata_api_client/model/json_api_fact_to_one_linkage.py gooddata_api_client/model/json_api_filter_context_in.py gooddata_api_client/model/json_api_filter_context_in_document.py gooddata_api_client/model/json_api_filter_context_linkage.py @@ -1573,6 +1615,7 @@ gooddata_api_client/model/json_api_filter_view_patch_document.py gooddata_api_client/model/json_api_identity_provider_in.py gooddata_api_client/model/json_api_identity_provider_in_attributes.py gooddata_api_client/model/json_api_identity_provider_in_document.py +gooddata_api_client/model/json_api_identity_provider_linkage.py gooddata_api_client/model/json_api_identity_provider_out.py gooddata_api_client/model/json_api_identity_provider_out_attributes.py gooddata_api_client/model/json_api_identity_provider_out_document.py @@ -1581,6 +1624,7 @@ 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 gooddata_api_client/model/json_api_jwk_in_attributes.py gooddata_api_client/model/json_api_jwk_in_attributes_content.py @@ -1630,6 +1674,11 @@ gooddata_api_client/model/json_api_metric_patch_document.py gooddata_api_client/model/json_api_metric_post_optional_id.py gooddata_api_client/model/json_api_metric_post_optional_id_document.py gooddata_api_client/model/json_api_metric_to_many_linkage.py +gooddata_api_client/model/json_api_notification_channel_identifier_out.py +gooddata_api_client/model/json_api_notification_channel_identifier_out_attributes.py +gooddata_api_client/model/json_api_notification_channel_identifier_out_document.py +gooddata_api_client/model/json_api_notification_channel_identifier_out_list.py +gooddata_api_client/model/json_api_notification_channel_identifier_out_with_links.py gooddata_api_client/model/json_api_notification_channel_in.py gooddata_api_client/model/json_api_notification_channel_in_attributes.py gooddata_api_client/model/json_api_notification_channel_in_attributes_destination.py @@ -1648,6 +1697,8 @@ gooddata_api_client/model/json_api_notification_channel_to_one_linkage.py gooddata_api_client/model/json_api_organization_in.py gooddata_api_client/model/json_api_organization_in_attributes.py gooddata_api_client/model/json_api_organization_in_document.py +gooddata_api_client/model/json_api_organization_in_relationships.py +gooddata_api_client/model/json_api_organization_in_relationships_identity_provider.py gooddata_api_client/model/json_api_organization_out.py gooddata_api_client/model/json_api_organization_out_attributes.py gooddata_api_client/model/json_api_organization_out_attributes_cache_settings.py @@ -1884,6 +1935,7 @@ gooddata_api_client/model/route_result.py gooddata_api_client/model/rsa_specification.py gooddata_api_client/model/rule_permission.py gooddata_api_client/model/running_section.py +gooddata_api_client/model/saved_visualization.py gooddata_api_client/model/scan_request.py gooddata_api_client/model/scan_result_pdm.py gooddata_api_client/model/scan_sql_request.py diff --git a/gooddata-api-client/README.md b/gooddata-api-client/README.md index 483e2d912..b25500d03 100644 --- a/gooddata-api-client/README.md +++ b/gooddata-api-client/README.md @@ -561,6 +561,7 @@ Class | Method | HTTP request | Description *EntitiesApi* | [**get_all_entities_labels**](docs/EntitiesApi.md#get_all_entities_labels) | **GET** /api/v1/entities/workspaces/{workspaceId}/labels | Get all Labels *EntitiesApi* | [**get_all_entities_llm_endpoints**](docs/EntitiesApi.md#get_all_entities_llm_endpoints) | **GET** /api/v1/entities/llmEndpoints | Get all LLM endpoint entities *EntitiesApi* | [**get_all_entities_metrics**](docs/EntitiesApi.md#get_all_entities_metrics) | **GET** /api/v1/entities/workspaces/{workspaceId}/metrics | Get all Metrics +*EntitiesApi* | [**get_all_entities_notification_channel_identifiers**](docs/EntitiesApi.md#get_all_entities_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers | *EntitiesApi* | [**get_all_entities_notification_channels**](docs/EntitiesApi.md#get_all_entities_notification_channels) | **GET** /api/v1/entities/notificationChannels | Get all Notification Channel entities *EntitiesApi* | [**get_all_entities_organization_settings**](docs/EntitiesApi.md#get_all_entities_organization_settings) | **GET** /api/v1/entities/organizationSettings | Get Organization entities *EntitiesApi* | [**get_all_entities_themes**](docs/EntitiesApi.md#get_all_entities_themes) | **GET** /api/v1/entities/themes | Get all Theming entities @@ -600,6 +601,7 @@ Class | Method | HTTP request | Description *EntitiesApi* | [**get_entity_labels**](docs/EntitiesApi.md#get_entity_labels) | **GET** /api/v1/entities/workspaces/{workspaceId}/labels/{objectId} | Get a Label *EntitiesApi* | [**get_entity_llm_endpoints**](docs/EntitiesApi.md#get_entity_llm_endpoints) | **GET** /api/v1/entities/llmEndpoints/{id} | Get LLM endpoint entity *EntitiesApi* | [**get_entity_metrics**](docs/EntitiesApi.md#get_entity_metrics) | **GET** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} | Get a Metric +*EntitiesApi* | [**get_entity_notification_channel_identifiers**](docs/EntitiesApi.md#get_entity_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers/{id} | *EntitiesApi* | [**get_entity_notification_channels**](docs/EntitiesApi.md#get_entity_notification_channels) | **GET** /api/v1/entities/notificationChannels/{id} | Get Notification Channel entity *EntitiesApi* | [**get_entity_organization_settings**](docs/EntitiesApi.md#get_entity_organization_settings) | **GET** /api/v1/entities/organizationSettings/{id} | Get Organization entity *EntitiesApi* | [**get_entity_organizations**](docs/EntitiesApi.md#get_entity_organizations) | **GET** /api/v1/entities/admin/organizations/{id} | Get Organizations @@ -757,6 +759,7 @@ Class | Method | HTTP request | Description *OrganizationModelControllerApi* | [**get_all_entities_identity_providers**](docs/OrganizationModelControllerApi.md#get_all_entities_identity_providers) | **GET** /api/v1/entities/identityProviders | Get all Identity Providers *OrganizationModelControllerApi* | [**get_all_entities_jwks**](docs/OrganizationModelControllerApi.md#get_all_entities_jwks) | **GET** /api/v1/entities/jwks | Get all Jwks *OrganizationModelControllerApi* | [**get_all_entities_llm_endpoints**](docs/OrganizationModelControllerApi.md#get_all_entities_llm_endpoints) | **GET** /api/v1/entities/llmEndpoints | Get all LLM endpoint entities +*OrganizationModelControllerApi* | [**get_all_entities_notification_channel_identifiers**](docs/OrganizationModelControllerApi.md#get_all_entities_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers | *OrganizationModelControllerApi* | [**get_all_entities_notification_channels**](docs/OrganizationModelControllerApi.md#get_all_entities_notification_channels) | **GET** /api/v1/entities/notificationChannels | Get all Notification Channel entities *OrganizationModelControllerApi* | [**get_all_entities_organization_settings**](docs/OrganizationModelControllerApi.md#get_all_entities_organization_settings) | **GET** /api/v1/entities/organizationSettings | Get Organization entities *OrganizationModelControllerApi* | [**get_all_entities_themes**](docs/OrganizationModelControllerApi.md#get_all_entities_themes) | **GET** /api/v1/entities/themes | Get all Theming entities @@ -773,6 +776,7 @@ Class | Method | HTTP request | Description *OrganizationModelControllerApi* | [**get_entity_identity_providers**](docs/OrganizationModelControllerApi.md#get_entity_identity_providers) | **GET** /api/v1/entities/identityProviders/{id} | Get Identity Provider *OrganizationModelControllerApi* | [**get_entity_jwks**](docs/OrganizationModelControllerApi.md#get_entity_jwks) | **GET** /api/v1/entities/jwks/{id} | Get Jwk *OrganizationModelControllerApi* | [**get_entity_llm_endpoints**](docs/OrganizationModelControllerApi.md#get_entity_llm_endpoints) | **GET** /api/v1/entities/llmEndpoints/{id} | Get LLM endpoint entity +*OrganizationModelControllerApi* | [**get_entity_notification_channel_identifiers**](docs/OrganizationModelControllerApi.md#get_entity_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers/{id} | *OrganizationModelControllerApi* | [**get_entity_notification_channels**](docs/OrganizationModelControllerApi.md#get_entity_notification_channels) | **GET** /api/v1/entities/notificationChannels/{id} | Get Notification Channel entity *OrganizationModelControllerApi* | [**get_entity_organization_settings**](docs/OrganizationModelControllerApi.md#get_entity_organization_settings) | **GET** /api/v1/entities/organizationSettings/{id} | Get Organization entity *OrganizationModelControllerApi* | [**get_entity_themes**](docs/OrganizationModelControllerApi.md#get_entity_themes) | **GET** /api/v1/entities/themes/{id} | Get Theming @@ -912,6 +916,7 @@ Class | Method | HTTP request | Description ## Documentation For Models - [AFM](docs/AFM.md) + - [AFMFiltersInner](docs/AFMFiltersInner.md) - [AbsoluteDateFilter](docs/AbsoluteDateFilter.md) - [AbsoluteDateFilterAbsoluteDateFilter](docs/AbsoluteDateFilterAbsoluteDateFilter.md) - [AbstractMeasureValueFilter](docs/AbstractMeasureValueFilter.md) @@ -949,6 +954,9 @@ Class | Method | HTTP request | Description - [ArithmeticMeasureDefinitionArithmeticMeasure](docs/ArithmeticMeasureDefinitionArithmeticMeasure.md) - [AssigneeIdentifier](docs/AssigneeIdentifier.md) - [AssigneeRule](docs/AssigneeRule.md) + - [AttributeElements](docs/AttributeElements.md) + - [AttributeElementsByRef](docs/AttributeElementsByRef.md) + - [AttributeElementsByValue](docs/AttributeElementsByValue.md) - [AttributeExecutionResultHeader](docs/AttributeExecutionResultHeader.md) - [AttributeFilter](docs/AttributeFilter.md) - [AttributeFilterByDate](docs/AttributeFilterByDate.md) @@ -970,7 +978,9 @@ Class | Method | HTTP request | Description - [AutomationMetadata](docs/AutomationMetadata.md) - [AutomationNotification](docs/AutomationNotification.md) - [AutomationNotificationAllOf](docs/AutomationNotificationAllOf.md) + - [AutomationRawExport](docs/AutomationRawExport.md) - [AutomationSchedule](docs/AutomationSchedule.md) + - [AutomationSlidesExport](docs/AutomationSlidesExport.md) - [AutomationTabularExport](docs/AutomationTabularExport.md) - [AutomationVisualExport](docs/AutomationVisualExport.md) - [AvailableAssignees](docs/AvailableAssignees.md) @@ -1004,16 +1014,15 @@ Class | Method | HTTP request | Description - [CustomOverride](docs/CustomOverride.md) - [DashboardAttributeFilter](docs/DashboardAttributeFilter.md) - [DashboardAttributeFilterAttributeFilter](docs/DashboardAttributeFilterAttributeFilter.md) - - [DashboardAttributeFilterAttributeFilterAllOf](docs/DashboardAttributeFilterAttributeFilterAllOf.md) - [DashboardDateFilter](docs/DashboardDateFilter.md) - [DashboardDateFilterDateFilter](docs/DashboardDateFilterDateFilter.md) - - [DashboardDateFilterDateFilterAllOf](docs/DashboardDateFilterDateFilterAllOf.md) + - [DashboardDateFilterDateFilterFrom](docs/DashboardDateFilterDateFilterFrom.md) + - [DashboardExportSettings](docs/DashboardExportSettings.md) - [DashboardFilter](docs/DashboardFilter.md) - [DashboardPermissions](docs/DashboardPermissions.md) - [DashboardPermissionsAssignment](docs/DashboardPermissionsAssignment.md) - [DashboardSlidesTemplate](docs/DashboardSlidesTemplate.md) - [DashboardTabularExportRequest](docs/DashboardTabularExportRequest.md) - - [DashboardTabularExportRequestDashboardFiltersOverrideInner](docs/DashboardTabularExportRequestDashboardFiltersOverrideInner.md) - [DataColumnLocator](docs/DataColumnLocator.md) - [DataColumnLocators](docs/DataColumnLocators.md) - [DataSourceParameter](docs/DataSourceParameter.md) @@ -1028,6 +1037,7 @@ Class | Method | HTTP request | Description - [DateFilter](docs/DateFilter.md) - [DateRelativeFilter](docs/DateRelativeFilter.md) - [DateRelativeFilterAllOf](docs/DateRelativeFilterAllOf.md) + - [DateValue](docs/DateValue.md) - [DeclarativeAnalyticalDashboard](docs/DeclarativeAnalyticalDashboard.md) - [DeclarativeAnalyticalDashboardExtension](docs/DeclarativeAnalyticalDashboardExtension.md) - [DeclarativeAnalyticalDashboardIdentifier](docs/DeclarativeAnalyticalDashboardIdentifier.md) @@ -1064,6 +1074,7 @@ Class | Method | HTTP request | Description - [DeclarativeFilterContext](docs/DeclarativeFilterContext.md) - [DeclarativeFilterView](docs/DeclarativeFilterView.md) - [DeclarativeIdentityProvider](docs/DeclarativeIdentityProvider.md) + - [DeclarativeIdentityProviderIdentifier](docs/DeclarativeIdentityProviderIdentifier.md) - [DeclarativeJwk](docs/DeclarativeJwk.md) - [DeclarativeJwkSpecification](docs/DeclarativeJwkSpecification.md) - [DeclarativeLabel](docs/DeclarativeLabel.md) @@ -1082,6 +1093,7 @@ Class | Method | HTTP request | Description - [DeclarativeRsaSpecification](docs/DeclarativeRsaSpecification.md) - [DeclarativeSetting](docs/DeclarativeSetting.md) - [DeclarativeSingleWorkspacePermission](docs/DeclarativeSingleWorkspacePermission.md) + - [DeclarativeSourceFactReference](docs/DeclarativeSourceFactReference.md) - [DeclarativeTable](docs/DeclarativeTable.md) - [DeclarativeTables](docs/DeclarativeTables.md) - [DeclarativeTheme](docs/DeclarativeTheme.md) @@ -1141,6 +1153,7 @@ Class | Method | HTTP request | Description - [ExportRequest](docs/ExportRequest.md) - [ExportResponse](docs/ExportResponse.md) - [ExportResult](docs/ExportResult.md) + - [FactIdentifier](docs/FactIdentifier.md) - [File](docs/File.md) - [Filter](docs/Filter.md) - [FilterBy](docs/FilterBy.md) @@ -1163,6 +1176,8 @@ Class | Method | HTTP request | Description - [HistogramBucket](docs/HistogramBucket.md) - [HistogramProperties](docs/HistogramProperties.md) - [IdentifierDuplications](docs/IdentifierDuplications.md) + - [IdentifierRef](docs/IdentifierRef.md) + - [IdentifierRefIdentifier](docs/IdentifierRefIdentifier.md) - [ImageExportRequest](docs/ImageExportRequest.md) - [InPlatform](docs/InPlatform.md) - [InPlatformAllOf](docs/InPlatformAllOf.md) @@ -1243,7 +1258,9 @@ Class | Method | HTTP request | Description - [JsonApiAutomationInAttributesExternalRecipientsInner](docs/JsonApiAutomationInAttributesExternalRecipientsInner.md) - [JsonApiAutomationInAttributesImageExportsInner](docs/JsonApiAutomationInAttributesImageExportsInner.md) - [JsonApiAutomationInAttributesMetadata](docs/JsonApiAutomationInAttributesMetadata.md) + - [JsonApiAutomationInAttributesRawExportsInner](docs/JsonApiAutomationInAttributesRawExportsInner.md) - [JsonApiAutomationInAttributesSchedule](docs/JsonApiAutomationInAttributesSchedule.md) + - [JsonApiAutomationInAttributesSlidesExportsInner](docs/JsonApiAutomationInAttributesSlidesExportsInner.md) - [JsonApiAutomationInAttributesTabularExportsInner](docs/JsonApiAutomationInAttributesTabularExportsInner.md) - [JsonApiAutomationInAttributesVisualExportsInner](docs/JsonApiAutomationInAttributesVisualExportsInner.md) - [JsonApiAutomationInDocument](docs/JsonApiAutomationInDocument.md) @@ -1395,10 +1412,13 @@ Class | Method | HTTP request | Description - [JsonApiFactOut](docs/JsonApiFactOut.md) - [JsonApiFactOutAttributes](docs/JsonApiFactOutAttributes.md) - [JsonApiFactOutDocument](docs/JsonApiFactOutDocument.md) + - [JsonApiFactOutIncludes](docs/JsonApiFactOutIncludes.md) - [JsonApiFactOutList](docs/JsonApiFactOutList.md) - [JsonApiFactOutRelationships](docs/JsonApiFactOutRelationships.md) + - [JsonApiFactOutRelationshipsSourceFact](docs/JsonApiFactOutRelationshipsSourceFact.md) - [JsonApiFactOutWithLinks](docs/JsonApiFactOutWithLinks.md) - [JsonApiFactToManyLinkage](docs/JsonApiFactToManyLinkage.md) + - [JsonApiFactToOneLinkage](docs/JsonApiFactToOneLinkage.md) - [JsonApiFilterContextIn](docs/JsonApiFilterContextIn.md) - [JsonApiFilterContextInDocument](docs/JsonApiFilterContextInDocument.md) - [JsonApiFilterContextLinkage](docs/JsonApiFilterContextLinkage.md) @@ -1429,6 +1449,7 @@ Class | Method | HTTP request | Description - [JsonApiIdentityProviderIn](docs/JsonApiIdentityProviderIn.md) - [JsonApiIdentityProviderInAttributes](docs/JsonApiIdentityProviderInAttributes.md) - [JsonApiIdentityProviderInDocument](docs/JsonApiIdentityProviderInDocument.md) + - [JsonApiIdentityProviderLinkage](docs/JsonApiIdentityProviderLinkage.md) - [JsonApiIdentityProviderOut](docs/JsonApiIdentityProviderOut.md) - [JsonApiIdentityProviderOutAttributes](docs/JsonApiIdentityProviderOutAttributes.md) - [JsonApiIdentityProviderOutDocument](docs/JsonApiIdentityProviderOutDocument.md) @@ -1437,6 +1458,7 @@ Class | Method | HTTP request | Description - [JsonApiIdentityProviderPatch](docs/JsonApiIdentityProviderPatch.md) - [JsonApiIdentityProviderPatchAttributes](docs/JsonApiIdentityProviderPatchAttributes.md) - [JsonApiIdentityProviderPatchDocument](docs/JsonApiIdentityProviderPatchDocument.md) + - [JsonApiIdentityProviderToOneLinkage](docs/JsonApiIdentityProviderToOneLinkage.md) - [JsonApiJwkIn](docs/JsonApiJwkIn.md) - [JsonApiJwkInAttributes](docs/JsonApiJwkInAttributes.md) - [JsonApiJwkInAttributesContent](docs/JsonApiJwkInAttributesContent.md) @@ -1486,6 +1508,11 @@ Class | Method | HTTP request | Description - [JsonApiMetricPostOptionalId](docs/JsonApiMetricPostOptionalId.md) - [JsonApiMetricPostOptionalIdDocument](docs/JsonApiMetricPostOptionalIdDocument.md) - [JsonApiMetricToManyLinkage](docs/JsonApiMetricToManyLinkage.md) + - [JsonApiNotificationChannelIdentifierOut](docs/JsonApiNotificationChannelIdentifierOut.md) + - [JsonApiNotificationChannelIdentifierOutAttributes](docs/JsonApiNotificationChannelIdentifierOutAttributes.md) + - [JsonApiNotificationChannelIdentifierOutDocument](docs/JsonApiNotificationChannelIdentifierOutDocument.md) + - [JsonApiNotificationChannelIdentifierOutList](docs/JsonApiNotificationChannelIdentifierOutList.md) + - [JsonApiNotificationChannelIdentifierOutWithLinks](docs/JsonApiNotificationChannelIdentifierOutWithLinks.md) - [JsonApiNotificationChannelIn](docs/JsonApiNotificationChannelIn.md) - [JsonApiNotificationChannelInAttributes](docs/JsonApiNotificationChannelInAttributes.md) - [JsonApiNotificationChannelInAttributesDestination](docs/JsonApiNotificationChannelInAttributesDestination.md) @@ -1504,6 +1531,8 @@ Class | Method | HTTP request | Description - [JsonApiOrganizationIn](docs/JsonApiOrganizationIn.md) - [JsonApiOrganizationInAttributes](docs/JsonApiOrganizationInAttributes.md) - [JsonApiOrganizationInDocument](docs/JsonApiOrganizationInDocument.md) + - [JsonApiOrganizationInRelationships](docs/JsonApiOrganizationInRelationships.md) + - [JsonApiOrganizationInRelationshipsIdentityProvider](docs/JsonApiOrganizationInRelationshipsIdentityProvider.md) - [JsonApiOrganizationOut](docs/JsonApiOrganizationOut.md) - [JsonApiOrganizationOutAttributes](docs/JsonApiOrganizationOutAttributes.md) - [JsonApiOrganizationOutAttributesCacheSettings](docs/JsonApiOrganizationOutAttributesCacheSettings.md) @@ -1740,6 +1769,7 @@ Class | Method | HTTP request | Description - [RsaSpecification](docs/RsaSpecification.md) - [RulePermission](docs/RulePermission.md) - [RunningSection](docs/RunningSection.md) + - [SavedVisualization](docs/SavedVisualization.md) - [ScanRequest](docs/ScanRequest.md) - [ScanResultPdm](docs/ScanResultPdm.md) - [ScanSqlRequest](docs/ScanSqlRequest.md) diff --git a/gooddata-api-client/docs/AFM.md b/gooddata-api-client/docs/AFM.md index 4de6a64be..f0e919ef5 100644 --- a/gooddata-api-client/docs/AFM.md +++ b/gooddata-api-client/docs/AFM.md @@ -6,7 +6,7 @@ Top level executable entity. Combination of [A]ttributes, [F]ilters & [M]etrics. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **attributes** | [**[AttributeItem]**](AttributeItem.md) | Attributes to be used in the computation. | -**filters** | [**[FilterDefinition]**](FilterDefinition.md) | Various filter types to filter the execution result. | +**filters** | [**[AFMFiltersInner]**](AFMFiltersInner.md) | Various filter types to filter the execution result. | **measures** | [**[MeasureItem]**](MeasureItem.md) | Metrics to be computed. | **aux_measures** | [**[MeasureItem]**](MeasureItem.md) | Metrics to be referenced from other AFM objects (e.g. filters) but not included in the result. | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/AFMFiltersInner.md b/gooddata-api-client/docs/AFMFiltersInner.md new file mode 100644 index 000000000..dbac5d910 --- /dev/null +++ b/gooddata-api-client/docs/AFMFiltersInner.md @@ -0,0 +1,18 @@ +# AFMFiltersInner + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**comparison_measure_value_filter** | [**ComparisonMeasureValueFilterComparisonMeasureValueFilter**](ComparisonMeasureValueFilterComparisonMeasureValueFilter.md) | | [optional] +**range_measure_value_filter** | [**RangeMeasureValueFilterRangeMeasureValueFilter**](RangeMeasureValueFilterRangeMeasureValueFilter.md) | | [optional] +**ranking_filter** | [**RankingFilterRankingFilter**](RankingFilterRankingFilter.md) | | [optional] +**absolute_date_filter** | [**AbsoluteDateFilterAbsoluteDateFilter**](AbsoluteDateFilterAbsoluteDateFilter.md) | | [optional] +**relative_date_filter** | [**RelativeDateFilterRelativeDateFilter**](RelativeDateFilterRelativeDateFilter.md) | | [optional] +**negative_attribute_filter** | [**NegativeAttributeFilterNegativeAttributeFilter**](NegativeAttributeFilterNegativeAttributeFilter.md) | | [optional] +**positive_attribute_filter** | [**PositiveAttributeFilterPositiveAttributeFilter**](PositiveAttributeFilterPositiveAttributeFilter.md) | | [optional] +**inline** | [**InlineFilterDefinitionInline**](InlineFilterDefinitionInline.md) | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/ActionsApi.md b/gooddata-api-client/docs/ActionsApi.md index 277fb8476..4b1c55dde 100644 --- a/gooddata-api-client/docs/ActionsApi.md +++ b/gooddata-api-client/docs/ActionsApi.md @@ -205,6 +205,10 @@ with gooddata_api_client.ApiClient() as api_client: chat_history_request = ChatHistoryRequest( chat_history_interaction_id="chat_history_interaction_id_example", reset=True, + saved_visualization=SavedVisualization( + created_visualization_id="created_visualization_id_example", + saved_visualization_id="saved_visualization_id_example", + ), thread_id_suffix="thread_id_suffix_example", user_feedback="POSITIVE", ) # ChatHistoryRequest | @@ -1707,10 +1711,17 @@ with gooddata_api_client.ApiClient() as api_client: dashboard_id = "dashboardId_example" # str | dashboard_tabular_export_request = DashboardTabularExportRequest( dashboard_filters_override=[ - DashboardTabularExportRequestDashboardFiltersOverrideInner(None), + DashboardFilter(), ], file_name="result", format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], ) # DashboardTabularExportRequest | # example passing only required values which don't have defaults set @@ -2154,6 +2165,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -6038,12 +6050,82 @@ with gooddata_api_client.ApiClient() as api_client: id="webhook123", type="notificationChannel", ), + raw_exports=[ + AutomationRawExport( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], recipients=[ DeclarativeUserIdentifier( id="employee123", type="user", ), ], + slides_exports=[ + AutomationSlidesExport( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], tabular_exports=[ AutomationTabularExport( request_payload=TabularExportRequest( @@ -6066,6 +6148,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ diff --git a/gooddata-api-client/docs/AdHocAutomation.md b/gooddata-api-client/docs/AdHocAutomation.md index 12a8e1e74..15f0a5623 100644 --- a/gooddata-api-client/docs/AdHocAutomation.md +++ b/gooddata-api-client/docs/AdHocAutomation.md @@ -12,7 +12,9 @@ Name | Type | Description | Notes **image_exports** | [**[AutomationImageExport]**](AutomationImageExport.md) | | [optional] **metadata** | [**AutomationMetadata**](AutomationMetadata.md) | | [optional] **notification_channel** | [**DeclarativeNotificationChannelIdentifier**](DeclarativeNotificationChannelIdentifier.md) | | [optional] +**raw_exports** | [**[AutomationRawExport]**](AutomationRawExport.md) | | [optional] **recipients** | [**[DeclarativeUserIdentifier]**](DeclarativeUserIdentifier.md) | | [optional] +**slides_exports** | [**[AutomationSlidesExport]**](AutomationSlidesExport.md) | | [optional] **tabular_exports** | [**[AutomationTabularExport]**](AutomationTabularExport.md) | | [optional] **tags** | **[str]** | A list of tags. | [optional] **title** | **str** | | [optional] diff --git a/gooddata-api-client/docs/DashboardDateFilterDateFilterAllOf.md b/gooddata-api-client/docs/AttributeElements.md similarity index 62% rename from gooddata-api-client/docs/DashboardDateFilterDateFilterAllOf.md rename to gooddata-api-client/docs/AttributeElements.md index 42b948e80..0115fe4a3 100644 --- a/gooddata-api-client/docs/DashboardDateFilterDateFilterAllOf.md +++ b/gooddata-api-client/docs/AttributeElements.md @@ -1,15 +1,11 @@ -# DashboardDateFilterDateFilterAllOf +# AttributeElements ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**attribute** | **str** | | [optional] -**data_set** | **str** | | [optional] -**_from** | **str** | | [optional] -**granularity** | **str** | | [optional] -**to** | **str** | | [optional] -**type** | **str** | | [optional] +**uris** | **[str, none_type]** | List of attribute elements by reference | [optional] +**values** | **[str, none_type]** | List of attribute elements by value | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/gooddata-api-client/docs/AttributeElementsByRef.md b/gooddata-api-client/docs/AttributeElementsByRef.md new file mode 100644 index 000000000..d2819f0a3 --- /dev/null +++ b/gooddata-api-client/docs/AttributeElementsByRef.md @@ -0,0 +1,12 @@ +# AttributeElementsByRef + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**uris** | **[str, none_type]** | List of attribute elements by reference | +**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/AttributeElementsByValue.md b/gooddata-api-client/docs/AttributeElementsByValue.md new file mode 100644 index 000000000..980064b06 --- /dev/null +++ b/gooddata-api-client/docs/AttributeElementsByValue.md @@ -0,0 +1,12 @@ +# AttributeElementsByValue + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**values** | **[str, none_type]** | List of attribute elements by value | +**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/AutomationRawExport.md b/gooddata-api-client/docs/AutomationRawExport.md new file mode 100644 index 000000000..fa73cfc37 --- /dev/null +++ b/gooddata-api-client/docs/AutomationRawExport.md @@ -0,0 +1,12 @@ +# AutomationRawExport + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**request_payload** | [**RawExportRequest**](RawExportRequest.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/AutomationSlidesExport.md b/gooddata-api-client/docs/AutomationSlidesExport.md new file mode 100644 index 000000000..edbc4cc9f --- /dev/null +++ b/gooddata-api-client/docs/AutomationSlidesExport.md @@ -0,0 +1,12 @@ +# AutomationSlidesExport + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**request_payload** | [**SlidesExportRequest**](SlidesExportRequest.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 40977eb65..48de18d04 100644 --- a/gooddata-api-client/docs/AutomationsApi.md +++ b/gooddata-api-client/docs/AutomationsApi.md @@ -110,11 +110,81 @@ with gooddata_api_client.ApiClient() as api_client: ], widget="widget_example", ), + raw_exports=[ + JsonApiAutomationInAttributesRawExportsInner( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + JsonApiAutomationInAttributesSlidesExportsInner( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ JsonApiAutomationInAttributesTabularExportsInner( @@ -138,6 +208,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -695,11 +766,81 @@ with gooddata_api_client.ApiClient() as api_client: ], widget="widget_example", ), + raw_exports=[ + JsonApiAutomationInAttributesRawExportsInner( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + JsonApiAutomationInAttributesSlidesExportsInner( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ JsonApiAutomationInAttributesTabularExportsInner( @@ -723,6 +864,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -965,6 +1107,59 @@ with gooddata_api_client.ApiClient() as api_client: id="webhook123", type="notificationChannel", ), + raw_exports=[ + AutomationRawExport( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], recipients=[ DeclarativeUserIdentifier( id="employee123", @@ -976,6 +1171,23 @@ with gooddata_api_client.ApiClient() as api_client: first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + AutomationSlidesExport( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ AutomationTabularExport( @@ -999,6 +1211,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -1180,12 +1393,82 @@ with gooddata_api_client.ApiClient() as api_client: id="webhook123", type="notificationChannel", ), + raw_exports=[ + AutomationRawExport( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], recipients=[ DeclarativeUserIdentifier( id="employee123", type="user", ), ], + slides_exports=[ + AutomationSlidesExport( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], tabular_exports=[ AutomationTabularExport( request_payload=TabularExportRequest( @@ -1208,6 +1491,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -1446,11 +1730,81 @@ with gooddata_api_client.ApiClient() as api_client: ], widget="widget_example", ), + raw_exports=[ + JsonApiAutomationInAttributesRawExportsInner( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + JsonApiAutomationInAttributesSlidesExportsInner( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ JsonApiAutomationInAttributesTabularExportsInner( @@ -1474,6 +1828,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ diff --git a/gooddata-api-client/docs/ChatHistoryRequest.md b/gooddata-api-client/docs/ChatHistoryRequest.md index ab6fc0a5d..0ac669c0d 100644 --- a/gooddata-api-client/docs/ChatHistoryRequest.md +++ b/gooddata-api-client/docs/ChatHistoryRequest.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **chat_history_interaction_id** | **str** | Return chat history records only after this interaction ID. If empty, complete chat history is returned. | [optional] **reset** | **bool** | User feedback. | [optional] +**saved_visualization** | [**SavedVisualization**](SavedVisualization.md) | | [optional] **thread_id_suffix** | **str** | Chat History thread suffix appended to ID generated by backend. Enables more chat windows. | [optional] **user_feedback** | **str** | User feedback. | [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/ChatUsageResponse.md b/gooddata-api-client/docs/ChatUsageResponse.md index 44fb6f557..79f7c4130 100644 --- a/gooddata-api-client/docs/ChatUsageResponse.md +++ b/gooddata-api-client/docs/ChatUsageResponse.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **interaction_count** | **int** | Number of interactions in the time window | +**interaction_limit** | **int** | Maximum number of interactions in the time window any user can do in the workspace | **time_window_hours** | **int** | Time window in hours | **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/CreatedVisualization.md b/gooddata-api-client/docs/CreatedVisualization.md index 163593df9..66c0bf3e4 100644 --- a/gooddata-api-client/docs/CreatedVisualization.md +++ b/gooddata-api-client/docs/CreatedVisualization.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **suggestions** | [**[Suggestion]**](Suggestion.md) | Suggestions for next steps | **title** | **str** | Proposed title of the new visualization | **visualization_type** | **str** | Visualization type requested in question | +**saved_visualization_id** | **str** | Saved visualization ID. | [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/DashboardAttributeFilterAttributeFilter.md b/gooddata-api-client/docs/DashboardAttributeFilterAttributeFilter.md index 97f1b44f0..4c4a9b7e3 100644 --- a/gooddata-api-client/docs/DashboardAttributeFilterAttributeFilter.md +++ b/gooddata-api-client/docs/DashboardAttributeFilterAttributeFilter.md @@ -4,15 +4,15 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**attribute_elements** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | -**display_form** | **str** | | +**attribute_elements** | [**AttributeElements**](AttributeElements.md) | | +**display_form** | [**IdentifierRef**](IdentifierRef.md) | | **negative_selection** | **bool** | | -**local_identifier** | **str** | | [optional] **filter_elements_by** | [**[AttributeFilterParent]**](AttributeFilterParent.md) | | [optional] **filter_elements_by_date** | [**[AttributeFilterByDate]**](AttributeFilterByDate.md) | | [optional] +**local_identifier** | **str** | | [optional] **selection_mode** | **str** | | [optional] **title** | **str** | | [optional] -**validate_elements_by** | **[str]** | | [optional] +**validate_elements_by** | [**[IdentifierRef]**](IdentifierRef.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/DashboardAttributeFilterAttributeFilterAllOf.md b/gooddata-api-client/docs/DashboardAttributeFilterAttributeFilterAllOf.md deleted file mode 100644 index 449802d3d..000000000 --- a/gooddata-api-client/docs/DashboardAttributeFilterAttributeFilterAllOf.md +++ /dev/null @@ -1,19 +0,0 @@ -# DashboardAttributeFilterAttributeFilterAllOf - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**attribute_elements** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional] -**display_form** | **str** | | [optional] -**filter_elements_by** | [**[AttributeFilterParent]**](AttributeFilterParent.md) | | [optional] -**filter_elements_by_date** | [**[AttributeFilterByDate]**](AttributeFilterByDate.md) | | [optional] -**negative_selection** | **bool** | | [optional] -**selection_mode** | **str** | | [optional] -**title** | **str** | | [optional] -**validate_elements_by** | **[str]** | | [optional] -**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/gooddata-api-client/docs/DashboardDateFilterDateFilter.md b/gooddata-api-client/docs/DashboardDateFilterDateFilter.md index 4cbd96275..5d41c1a29 100644 --- a/gooddata-api-client/docs/DashboardDateFilterDateFilter.md +++ b/gooddata-api-client/docs/DashboardDateFilterDateFilter.md @@ -6,11 +6,11 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **granularity** | **str** | | **type** | **str** | | +**attribute** | [**IdentifierRef**](IdentifierRef.md) | | [optional] +**data_set** | [**IdentifierRef**](IdentifierRef.md) | | [optional] +**_from** | [**DashboardDateFilterDateFilterFrom**](DashboardDateFilterDateFilterFrom.md) | | [optional] **local_identifier** | **str** | | [optional] -**attribute** | **str** | | [optional] -**data_set** | **str** | | [optional] -**_from** | **str** | | [optional] -**to** | **str** | | [optional] +**to** | [**DashboardDateFilterDateFilterFrom**](DashboardDateFilterDateFilterFrom.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/DashboardDateFilterDateFilterFrom.md b/gooddata-api-client/docs/DashboardDateFilterDateFilterFrom.md new file mode 100644 index 000000000..a39f31afc --- /dev/null +++ b/gooddata-api-client/docs/DashboardDateFilterDateFilterFrom.md @@ -0,0 +1,11 @@ +# DashboardDateFilterDateFilterFrom + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/DashboardExportSettings.md b/gooddata-api-client/docs/DashboardExportSettings.md new file mode 100644 index 000000000..bd9867f8e --- /dev/null +++ b/gooddata-api-client/docs/DashboardExportSettings.md @@ -0,0 +1,14 @@ +# DashboardExportSettings + +Additional settings. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**export_info** | **bool** | If true, the export will contain the information about the exported date and dashboard filters. | [optional] if omitted the server will use the default value of False +**merge_headers** | **bool** | Merge equal headers in neighbouring cells. Used for [XLSX] format only. | [optional] if omitted the server will use the default value of False +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/DashboardFilter.md b/gooddata-api-client/docs/DashboardFilter.md index 7e3ae4e63..0ba59320f 100644 --- a/gooddata-api-client/docs/DashboardFilter.md +++ b/gooddata-api-client/docs/DashboardFilter.md @@ -4,7 +4,8 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**local_identifier** | **str** | | [optional] +**attribute_filter** | [**DashboardAttributeFilterAttributeFilter**](DashboardAttributeFilterAttributeFilter.md) | | [optional] +**date_filter** | [**DashboardDateFilterDateFilter**](DashboardDateFilterDateFilter.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/DashboardTabularExportRequest.md b/gooddata-api-client/docs/DashboardTabularExportRequest.md index 315a2ed80..6a6a6347e 100644 --- a/gooddata-api-client/docs/DashboardTabularExportRequest.md +++ b/gooddata-api-client/docs/DashboardTabularExportRequest.md @@ -7,7 +7,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **file_name** | **str** | Filename of downloaded file without extension. | **format** | **str** | Requested tabular export type. | defaults to "XLSX" -**dashboard_filters_override** | [**[DashboardTabularExportRequestDashboardFiltersOverrideInner]**](DashboardTabularExportRequestDashboardFiltersOverrideInner.md) | List of filters that will be used instead of the default dashboard filters. | [optional] +**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/DateValue.md b/gooddata-api-client/docs/DateValue.md new file mode 100644 index 000000000..5bcb48647 --- /dev/null +++ b/gooddata-api-client/docs/DateValue.md @@ -0,0 +1,12 @@ +# DateValue + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | **str** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/DeclarativeAutomation.md b/gooddata-api-client/docs/DeclarativeAutomation.md index 4cf74fa95..b7b720e3f 100644 --- a/gooddata-api-client/docs/DeclarativeAutomation.md +++ b/gooddata-api-client/docs/DeclarativeAutomation.md @@ -18,8 +18,10 @@ Name | Type | Description | Notes **modified_at** | **str, none_type** | Time of the last entity modification. | [optional] **modified_by** | [**DeclarativeUserIdentifier**](DeclarativeUserIdentifier.md) | | [optional] **notification_channel** | [**DeclarativeNotificationChannelIdentifier**](DeclarativeNotificationChannelIdentifier.md) | | [optional] +**raw_exports** | [**[AutomationRawExport]**](AutomationRawExport.md) | | [optional] **recipients** | [**[DeclarativeUserIdentifier]**](DeclarativeUserIdentifier.md) | | [optional] **schedule** | [**AutomationSchedule**](AutomationSchedule.md) | | [optional] +**slides_exports** | [**[AutomationSlidesExport]**](AutomationSlidesExport.md) | | [optional] **state** | **str** | Current state of the automation. | [optional] if omitted the server will use the default value of "ACTIVE" **tabular_exports** | [**[AutomationTabularExport]**](AutomationTabularExport.md) | | [optional] **tags** | **[str]** | | [optional] diff --git a/gooddata-api-client/docs/DeclarativeDataset.md b/gooddata-api-client/docs/DeclarativeDataset.md index 39b6d2f37..d8180a67f 100644 --- a/gooddata-api-client/docs/DeclarativeDataset.md +++ b/gooddata-api-client/docs/DeclarativeDataset.md @@ -13,6 +13,7 @@ Name | Type | Description | Notes **data_source_table_id** | [**DataSourceTableIdentifier**](DataSourceTableIdentifier.md) | | [optional] **description** | **str** | A dataset description. | [optional] **facts** | [**[DeclarativeFact]**](DeclarativeFact.md) | An array of facts. | [optional] +**precedence** | **int** | Precedence used in aggregate awareness. | [optional] **sql** | [**DeclarativeDatasetSql**](DeclarativeDatasetSql.md) | | [optional] **tags** | **[str]** | A list of tags. | [optional] **workspace_data_filter_columns** | [**[DeclarativeWorkspaceDataFilterColumn]**](DeclarativeWorkspaceDataFilterColumn.md) | An array of columns which are available for match to implicit workspace data filters. | [optional] diff --git a/gooddata-api-client/docs/DeclarativeFact.md b/gooddata-api-client/docs/DeclarativeFact.md index e5ea6722b..6c90e9a4b 100644 --- a/gooddata-api-client/docs/DeclarativeFact.md +++ b/gooddata-api-client/docs/DeclarativeFact.md @@ -10,6 +10,7 @@ Name | Type | Description | Notes **title** | **str** | Fact title. | **description** | **str** | Fact description. | [optional] **source_column_data_type** | **str** | A type of the source column | [optional] +**source_fact_reference** | [**DeclarativeSourceFactReference**](DeclarativeSourceFactReference.md) | | [optional] **tags** | **[str]** | A list of tags. | [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/DeclarativeIdentityProvider.md b/gooddata-api-client/docs/DeclarativeIdentityProvider.md index 84e7623a4..140ecf7c8 100644 --- a/gooddata-api-client/docs/DeclarativeIdentityProvider.md +++ b/gooddata-api-client/docs/DeclarativeIdentityProvider.md @@ -10,7 +10,11 @@ Name | Type | Description | Notes **custom_claim_mapping** | **{str: (str,)}** | Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute. | [optional] **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] diff --git a/gooddata-api-client/docs/DeclarativeIdentityProviderIdentifier.md b/gooddata-api-client/docs/DeclarativeIdentityProviderIdentifier.md new file mode 100644 index 000000000..421e6407e --- /dev/null +++ b/gooddata-api-client/docs/DeclarativeIdentityProviderIdentifier.md @@ -0,0 +1,14 @@ +# DeclarativeIdentityProviderIdentifier + +An Identity Provider identifier. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Identifier of the identity provider. | +**type** | **str** | A type. | defaults to "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] + +[[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/DeclarativeNotificationChannel.md b/gooddata-api-client/docs/DeclarativeNotificationChannel.md index 87633a619..5193110f3 100644 --- a/gooddata-api-client/docs/DeclarativeNotificationChannel.md +++ b/gooddata-api-client/docs/DeclarativeNotificationChannel.md @@ -7,13 +7,14 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **str** | Identifier of a notification channel | **allowed_recipients** | **str** | Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization | [optional] if omitted the server will use the default value of "INTERNAL" -**custom_dashboard_url** | **str** | Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}. | [optional] +**custom_dashboard_url** | **str** | Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are: {workspaceId} {dashboardId} {automationId} {asOfDate} | [optional] **dashboard_link_visibility** | **str** | Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link | [optional] if omitted the server will use the default value of "INTERNAL_ONLY" **description** | **str** | Description of a notification channel. | [optional] **destination** | [**DeclarativeNotificationChannelDestination**](DeclarativeNotificationChannelDestination.md) | | [optional] **destination_type** | **str, none_type** | | [optional] [readonly] **in_platform_notification** | **str** | In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications | [optional] if omitted the server will use the default value of "DISABLED" **name** | **str** | Name of a notification channel. | [optional] +**notification_source** | **str** | Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are: {{workspaceId}} {{workspaceName}} {{workspaceDescription}} {{dashboardId}} {{dashboardName}} {{dashboardDescription}} | [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/DeclarativeOrganizationInfo.md b/gooddata-api-client/docs/DeclarativeOrganizationInfo.md index 5ae584f1c..1ff5ee1bd 100644 --- a/gooddata-api-client/docs/DeclarativeOrganizationInfo.md +++ b/gooddata-api-client/docs/DeclarativeOrganizationInfo.md @@ -14,6 +14,7 @@ Name | Type | Description | Notes **csp_directives** | [**[DeclarativeCspDirective]**](DeclarativeCspDirective.md) | A list of CSP directives. | [optional] **early_access** | **str** | Early access defined on level Organization | [optional] **early_access_values** | **[str]** | Early access defined on level Organization | [optional] +**identity_provider** | [**DeclarativeIdentityProviderIdentifier**](DeclarativeIdentityProviderIdentifier.md) | | [optional] **oauth_client_id** | **str** | Identifier of the authentication provider | [optional] **oauth_client_secret** | **str** | Communication secret of the authentication provider (never returned back). | [optional] **oauth_custom_auth_attributes** | **{str: (str,)}** | Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute. | [optional] diff --git a/gooddata-api-client/docs/DeclarativeSourceFactReference.md b/gooddata-api-client/docs/DeclarativeSourceFactReference.md new file mode 100644 index 000000000..26ae957d1 --- /dev/null +++ b/gooddata-api-client/docs/DeclarativeSourceFactReference.md @@ -0,0 +1,14 @@ +# DeclarativeSourceFactReference + +Aggregated awareness source fact reference. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | [**FactIdentifier**](FactIdentifier.md) | | +**operation** | **str** | Aggregation operation. | +**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 c4366e53c..94a9587b5 100644 --- a/gooddata-api-client/docs/EntitiesApi.md +++ b/gooddata-api-client/docs/EntitiesApi.md @@ -85,6 +85,7 @@ Method | HTTP request | Description [**get_all_entities_labels**](EntitiesApi.md#get_all_entities_labels) | **GET** /api/v1/entities/workspaces/{workspaceId}/labels | Get all Labels [**get_all_entities_llm_endpoints**](EntitiesApi.md#get_all_entities_llm_endpoints) | **GET** /api/v1/entities/llmEndpoints | Get all LLM endpoint entities [**get_all_entities_metrics**](EntitiesApi.md#get_all_entities_metrics) | **GET** /api/v1/entities/workspaces/{workspaceId}/metrics | Get all Metrics +[**get_all_entities_notification_channel_identifiers**](EntitiesApi.md#get_all_entities_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers | [**get_all_entities_notification_channels**](EntitiesApi.md#get_all_entities_notification_channels) | **GET** /api/v1/entities/notificationChannels | Get all Notification Channel entities [**get_all_entities_organization_settings**](EntitiesApi.md#get_all_entities_organization_settings) | **GET** /api/v1/entities/organizationSettings | Get Organization entities [**get_all_entities_themes**](EntitiesApi.md#get_all_entities_themes) | **GET** /api/v1/entities/themes | Get all Theming entities @@ -124,6 +125,7 @@ Method | HTTP request | Description [**get_entity_labels**](EntitiesApi.md#get_entity_labels) | **GET** /api/v1/entities/workspaces/{workspaceId}/labels/{objectId} | Get a Label [**get_entity_llm_endpoints**](EntitiesApi.md#get_entity_llm_endpoints) | **GET** /api/v1/entities/llmEndpoints/{id} | Get LLM endpoint entity [**get_entity_metrics**](EntitiesApi.md#get_entity_metrics) | **GET** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} | Get a Metric +[**get_entity_notification_channel_identifiers**](EntitiesApi.md#get_entity_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers/{id} | [**get_entity_notification_channels**](EntitiesApi.md#get_entity_notification_channels) | **GET** /api/v1/entities/notificationChannels/{id} | Get Notification Channel entity [**get_entity_organization_settings**](EntitiesApi.md#get_entity_organization_settings) | **GET** /api/v1/entities/organizationSettings/{id} | Get Organization entity [**get_entity_organizations**](EntitiesApi.md#get_entity_organizations) | **GET** /api/v1/entities/admin/organizations/{id} | Get Organizations @@ -565,11 +567,81 @@ with gooddata_api_client.ApiClient() as api_client: ], widget="widget_example", ), + raw_exports=[ + JsonApiAutomationInAttributesRawExportsInner( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + JsonApiAutomationInAttributesSlidesExportsInner( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ JsonApiAutomationInAttributesTabularExportsInner( @@ -593,6 +665,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -1650,7 +1723,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), id="id1", @@ -1802,7 +1883,6 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiLlmEndpointIn( attributes=JsonApiLlmEndpointInAttributes( base_url="base_url_example", - description="description_example", llm_model="llm_model_example", llm_organization="llm_organization_example", provider="OPENAI", @@ -1990,6 +2070,7 @@ with gooddata_api_client.ApiClient() as api_client: destination=JsonApiNotificationChannelInAttributesDestination(None), in_platform_notification="DISABLED", name="name_example", + notification_source="notification_source_example", ), id="id1", type="notificationChannel", @@ -4220,7 +4301,7 @@ with gooddata_api_client.ApiClient() as api_client: # Create an instance of the API class api_instance = entities_api.EntitiesApi(api_client) id = "/6bUUGjjNSwg0_bs" # str | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -6588,9 +6669,9 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = entities_api.EntitiesApi(api_client) workspace_id = "workspaceId_example" # str | origin = "ALL" # str | (optional) if omitted the server will use the default value of "ALL" - filter = "filter=title==someString;description==someString;dataset.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + filter = "filter=title==someString;description==someString;dataset.id==321;sourceFact.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=dataset", + "include=dataset,sourceFact", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) page = 0 # int | Zero-based page index (0..N) (optional) if omitted the server will use the default value of 0 size = 20 # int | The size of the page to be returned (optional) if omitted the server will use the default value of 20 @@ -7128,7 +7209,7 @@ configuration = gooddata_api_client.Configuration( with gooddata_api_client.ApiClient() as api_client: # Create an instance of the API class api_instance = entities_api.EntitiesApi(api_client) - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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 = [ @@ -7269,6 +7350,83 @@ 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_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 entities_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 = entities_api.EntitiesApi(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 EntitiesApi->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 | @@ -9882,9 +10040,9 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = entities_api.EntitiesApi(api_client) workspace_id = "workspaceId_example" # str | object_id = "objectId_example" # str | - filter = "filter=title==someString;description==someString;dataset.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + filter = "filter=title==someString;description==someString;dataset.id==321;sourceFact.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=dataset", + "include=dataset,sourceFact", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False meta_include = [ @@ -10383,7 +10541,7 @@ with gooddata_api_client.ApiClient() as api_client: # Create an instance of the API class api_instance = entities_api.EntitiesApi(api_client) id = "/6bUUGjjNSwg0_bs" # str | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -10513,6 +10671,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 entities_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 = entities_api.EntitiesApi(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 EntitiesApi->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 EntitiesApi->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 | @@ -10701,7 +10933,7 @@ with gooddata_api_client.ApiClient() as api_client: id = "/6bUUGjjNSwg0_bs" # str | filter = "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=bootstrapUser,bootstrapUserGroup", + "include=bootstrapUser,bootstrapUserGroup,identityProvider", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) meta_include = [ "metaInclude=permissions,all", @@ -12036,11 +12268,81 @@ with gooddata_api_client.ApiClient() as api_client: ], widget="widget_example", ), + raw_exports=[ + JsonApiAutomationInAttributesRawExportsInner( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + JsonApiAutomationInAttributesSlidesExportsInner( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ JsonApiAutomationInAttributesTabularExportsInner( @@ -12064,6 +12366,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -13252,7 +13555,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), id="id1", @@ -13430,7 +13741,6 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiLlmEndpointPatch( attributes=JsonApiLlmEndpointPatchAttributes( base_url="base_url_example", - description="description_example", llm_model="llm_model_example", llm_organization="llm_organization_example", provider="OPENAI", @@ -13441,7 +13751,7 @@ with gooddata_api_client.ApiClient() as api_client: type="llmEndpoint", ), ) # JsonApiLlmEndpointPatchDocument | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -13631,6 +13941,7 @@ with gooddata_api_client.ApiClient() as api_client: destination=JsonApiNotificationChannelInAttributesDestination(None), in_platform_notification="DISABLED", name="name_example", + notification_source="notification_source_example", ), id="id1", type="notificationChannel", @@ -13827,12 +14138,17 @@ with gooddata_api_client.ApiClient() as api_client: oauth_subject_id_claim="oid", ), id="id1", + relationships=JsonApiOrganizationInRelationships( + identity_provider=JsonApiOrganizationInRelationshipsIdentityProvider( + data=JsonApiIdentityProviderToOneLinkage(None), + ), + ), type="organization", ), ) # JsonApiOrganizationPatchDocument | filter = "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=bootstrapUser,bootstrapUserGroup", + "include=bootstrapUser,bootstrapUserGroup,identityProvider", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) # example passing only required values which don't have defaults set @@ -15089,11 +15405,81 @@ with gooddata_api_client.ApiClient() as api_client: ], widget="widget_example", ), + raw_exports=[ + JsonApiAutomationInAttributesRawExportsInner( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + JsonApiAutomationInAttributesSlidesExportsInner( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ JsonApiAutomationInAttributesTabularExportsInner( @@ -15117,6 +15503,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -16305,7 +16692,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), id="id1", @@ -16483,7 +16878,6 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiLlmEndpointIn( attributes=JsonApiLlmEndpointInAttributes( base_url="base_url_example", - description="description_example", llm_model="llm_model_example", llm_organization="llm_organization_example", provider="OPENAI", @@ -16494,7 +16888,7 @@ with gooddata_api_client.ApiClient() as api_client: type="llmEndpoint", ), ) # JsonApiLlmEndpointInDocument | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -16684,6 +17078,7 @@ with gooddata_api_client.ApiClient() as api_client: destination=JsonApiNotificationChannelInAttributesDestination(None), in_platform_notification="DISABLED", name="name_example", + notification_source="notification_source_example", ), id="id1", type="notificationChannel", @@ -16880,12 +17275,17 @@ with gooddata_api_client.ApiClient() as api_client: oauth_subject_id_claim="oid", ), id="id1", + relationships=JsonApiOrganizationInRelationships( + identity_provider=JsonApiOrganizationInRelationshipsIdentityProvider( + data=JsonApiIdentityProviderToOneLinkage(None), + ), + ), type="organization", ), ) # JsonApiOrganizationInDocument | filter = "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=bootstrapUser,bootstrapUserGroup", + "include=bootstrapUser,bootstrapUserGroup,identityProvider", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) # example passing only required values which don't have defaults set diff --git a/gooddata-api-client/docs/ExportResult.md b/gooddata-api-client/docs/ExportResult.md index 2c76f2bc7..50c54490a 100644 --- a/gooddata-api-client/docs/ExportResult.md +++ b/gooddata-api-client/docs/ExportResult.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **status** | **str** | | **error_message** | **str** | | [optional] **expires_at** | **datetime** | | [optional] +**file_size** | **int** | | [optional] **file_uri** | **str** | | [optional] **trace_id** | **str** | | [optional] **triggered_at** | **datetime** | | [optional] diff --git a/gooddata-api-client/docs/FactIdentifier.md b/gooddata-api-client/docs/FactIdentifier.md new file mode 100644 index 000000000..2c485acd3 --- /dev/null +++ b/gooddata-api-client/docs/FactIdentifier.md @@ -0,0 +1,14 @@ +# FactIdentifier + +A fact identifier. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Fact ID. | +**type** | **str** | A type of the fact. | defaults to "fact" +**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/FactsApi.md b/gooddata-api-client/docs/FactsApi.md index 3c04430b3..95d6889a6 100644 --- a/gooddata-api-client/docs/FactsApi.md +++ b/gooddata-api-client/docs/FactsApi.md @@ -35,9 +35,9 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = facts_api.FactsApi(api_client) workspace_id = "workspaceId_example" # str | origin = "ALL" # str | (optional) if omitted the server will use the default value of "ALL" - filter = "filter=title==someString;description==someString;dataset.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + filter = "filter=title==someString;description==someString;dataset.id==321;sourceFact.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=dataset", + "include=dataset,sourceFact", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) page = 0 # int | Zero-based page index (0..N) (optional) if omitted the server will use the default value of 0 size = 20 # int | The size of the page to be returned (optional) if omitted the server will use the default value of 20 @@ -131,9 +131,9 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = facts_api.FactsApi(api_client) workspace_id = "workspaceId_example" # str | object_id = "objectId_example" # str | - filter = "filter=title==someString;description==someString;dataset.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + filter = "filter=title==someString;description==someString;dataset.id==321;sourceFact.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=dataset", + "include=dataset,sourceFact", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False meta_include = [ diff --git a/gooddata-api-client/docs/IdentifierRef.md b/gooddata-api-client/docs/IdentifierRef.md new file mode 100644 index 000000000..31879332c --- /dev/null +++ b/gooddata-api-client/docs/IdentifierRef.md @@ -0,0 +1,12 @@ +# IdentifierRef + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**identifier** | [**IdentifierRefIdentifier**](IdentifierRefIdentifier.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/IdentifierRefIdentifier.md b/gooddata-api-client/docs/IdentifierRefIdentifier.md new file mode 100644 index 000000000..9909e947d --- /dev/null +++ b/gooddata-api-client/docs/IdentifierRefIdentifier.md @@ -0,0 +1,13 @@ +# IdentifierRefIdentifier + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | +**type** | **str** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/IdentityProvidersApi.md b/gooddata-api-client/docs/IdentityProvidersApi.md index b1a5a71c7..db5be5f54 100644 --- a/gooddata-api-client/docs/IdentityProvidersApi.md +++ b/gooddata-api-client/docs/IdentityProvidersApi.md @@ -49,7 +49,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), id="id1", @@ -421,7 +429,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), id="id1", @@ -515,7 +531,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), ] # [DeclarativeIdentityProvider] | @@ -593,7 +617,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), id="id1", diff --git a/gooddata-api-client/docs/ImageExportRequest.md b/gooddata-api-client/docs/ImageExportRequest.md index 8671da722..13a9a99ff 100644 --- a/gooddata-api-client/docs/ImageExportRequest.md +++ b/gooddata-api-client/docs/ImageExportRequest.md @@ -7,9 +7,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **dashboard_id** | **str** | Dashboard identifier | **file_name** | **str** | File name to be used for retrieving the image document. | +**widget_ids** | **[str]** | List of widget identifiers to be exported. Note that only one widget is currently supported. | **format** | **str** | Requested resulting file type. | defaults to "PNG" **metadata** | [**JsonNode**](JsonNode.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/JsonApiAutomationInAttributes.md b/gooddata-api-client/docs/JsonApiAutomationInAttributes.md index f195b2ed5..e80d30d92 100644 --- a/gooddata-api-client/docs/JsonApiAutomationInAttributes.md +++ b/gooddata-api-client/docs/JsonApiAutomationInAttributes.md @@ -11,7 +11,9 @@ Name | Type | Description | Notes **external_recipients** | [**[JsonApiAutomationInAttributesExternalRecipientsInner]**](JsonApiAutomationInAttributesExternalRecipientsInner.md) | External recipients of the automation action results. | [optional] **image_exports** | [**[JsonApiAutomationInAttributesImageExportsInner]**](JsonApiAutomationInAttributesImageExportsInner.md) | | [optional] **metadata** | [**JsonApiAutomationInAttributesMetadata**](JsonApiAutomationInAttributesMetadata.md) | | [optional] +**raw_exports** | [**[JsonApiAutomationInAttributesRawExportsInner]**](JsonApiAutomationInAttributesRawExportsInner.md) | | [optional] **schedule** | [**JsonApiAutomationInAttributesSchedule**](JsonApiAutomationInAttributesSchedule.md) | | [optional] +**slides_exports** | [**[JsonApiAutomationInAttributesSlidesExportsInner]**](JsonApiAutomationInAttributesSlidesExportsInner.md) | | [optional] **state** | **str** | Current state of the automation. | [optional] **tabular_exports** | [**[JsonApiAutomationInAttributesTabularExportsInner]**](JsonApiAutomationInAttributesTabularExportsInner.md) | | [optional] **tags** | **[str]** | | [optional] diff --git a/gooddata-api-client/docs/JsonApiAutomationInAttributesRawExportsInner.md b/gooddata-api-client/docs/JsonApiAutomationInAttributesRawExportsInner.md new file mode 100644 index 000000000..831a248d9 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiAutomationInAttributesRawExportsInner.md @@ -0,0 +1,12 @@ +# JsonApiAutomationInAttributesRawExportsInner + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**request_payload** | [**RawExportRequest**](RawExportRequest.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/JsonApiAutomationInAttributesSlidesExportsInner.md b/gooddata-api-client/docs/JsonApiAutomationInAttributesSlidesExportsInner.md new file mode 100644 index 000000000..5d4a0e1ae --- /dev/null +++ b/gooddata-api-client/docs/JsonApiAutomationInAttributesSlidesExportsInner.md @@ -0,0 +1,12 @@ +# JsonApiAutomationInAttributesSlidesExportsInner + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**request_payload** | [**SlidesExportRequest**](SlidesExportRequest.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 2a91f345a..19520f829 100644 --- a/gooddata-api-client/docs/JsonApiAutomationOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiAutomationOutAttributes.md @@ -13,7 +13,9 @@ Name | Type | Description | Notes **image_exports** | [**[JsonApiAutomationInAttributesImageExportsInner]**](JsonApiAutomationInAttributesImageExportsInner.md) | | [optional] **metadata** | [**JsonApiAutomationInAttributesMetadata**](JsonApiAutomationInAttributesMetadata.md) | | [optional] **modified_at** | **datetime** | | [optional] +**raw_exports** | [**[JsonApiAutomationInAttributesRawExportsInner]**](JsonApiAutomationInAttributesRawExportsInner.md) | | [optional] **schedule** | [**JsonApiAutomationInAttributesSchedule**](JsonApiAutomationInAttributesSchedule.md) | | [optional] +**slides_exports** | [**[JsonApiAutomationInAttributesSlidesExportsInner]**](JsonApiAutomationInAttributesSlidesExportsInner.md) | | [optional] **state** | **str** | Current state of the automation. | [optional] **tabular_exports** | [**[JsonApiAutomationInAttributesTabularExportsInner]**](JsonApiAutomationInAttributesTabularExportsInner.md) | | [optional] **tags** | **[str]** | | [optional] diff --git a/gooddata-api-client/docs/JsonApiDatasetOutAttributes.md b/gooddata-api-client/docs/JsonApiDatasetOutAttributes.md index d2c6bc454..a570c1907 100644 --- a/gooddata-api-client/docs/JsonApiDatasetOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiDatasetOutAttributes.md @@ -10,6 +10,7 @@ Name | Type | Description | Notes **data_source_table_path** | **[str]** | Path to database table. | [optional] **description** | **str** | | [optional] **grain** | [**[JsonApiDatasetOutAttributesGrainInner]**](JsonApiDatasetOutAttributesGrainInner.md) | | [optional] +**precedence** | **int** | | [optional] **reference_properties** | [**[JsonApiDatasetOutAttributesReferencePropertiesInner]**](JsonApiDatasetOutAttributesReferencePropertiesInner.md) | | [optional] **sql** | [**JsonApiDatasetOutAttributesSql**](JsonApiDatasetOutAttributesSql.md) | | [optional] **tags** | **[str]** | | [optional] diff --git a/gooddata-api-client/docs/JsonApiFactOutAttributes.md b/gooddata-api-client/docs/JsonApiFactOutAttributes.md index e82484fc0..c406d0b8c 100644 --- a/gooddata-api-client/docs/JsonApiFactOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiFactOutAttributes.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **are_relations_valid** | **bool** | | [optional] **description** | **str** | | [optional] +**operation** | **str** | | [optional] **source_column** | **str** | | [optional] **source_column_data_type** | **str** | | [optional] **tags** | **[str]** | | [optional] diff --git a/gooddata-api-client/docs/JsonApiFactOutDocument.md b/gooddata-api-client/docs/JsonApiFactOutDocument.md index 72447c2f6..2c1b0a6bb 100644 --- a/gooddata-api-client/docs/JsonApiFactOutDocument.md +++ b/gooddata-api-client/docs/JsonApiFactOutDocument.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data** | [**JsonApiFactOut**](JsonApiFactOut.md) | | -**included** | [**[JsonApiDatasetOutWithLinks]**](JsonApiDatasetOutWithLinks.md) | Included resources | [optional] +**included** | [**[JsonApiFactOutIncludes]**](JsonApiFactOutIncludes.md) | Included resources | [optional] **links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/JsonApiFactOutIncludes.md b/gooddata-api-client/docs/JsonApiFactOutIncludes.md new file mode 100644 index 000000000..f7be5a551 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiFactOutIncludes.md @@ -0,0 +1,17 @@ +# JsonApiFactOutIncludes + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**meta** | [**JsonApiAttributeHierarchyOutMeta**](JsonApiAttributeHierarchyOutMeta.md) | | [optional] +**relationships** | [**JsonApiFactOutRelationships**](JsonApiFactOutRelationships.md) | | [optional] +**links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] +**attributes** | [**JsonApiFactOutAttributes**](JsonApiFactOutAttributes.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 "fact" +**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/JsonApiFactOutList.md b/gooddata-api-client/docs/JsonApiFactOutList.md index de2413dda..85a266cea 100644 --- a/gooddata-api-client/docs/JsonApiFactOutList.md +++ b/gooddata-api-client/docs/JsonApiFactOutList.md @@ -6,7 +6,7 @@ A JSON:API document with a list of resources Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data** | [**[JsonApiFactOutWithLinks]**](JsonApiFactOutWithLinks.md) | | -**included** | [**[JsonApiDatasetOutWithLinks]**](JsonApiDatasetOutWithLinks.md) | Included resources | [optional] +**included** | [**[JsonApiFactOutIncludes]**](JsonApiFactOutIncludes.md) | Included resources | [optional] **links** | [**ListLinks**](ListLinks.md) | | [optional] **meta** | [**JsonApiAnalyticalDashboardOutListMeta**](JsonApiAnalyticalDashboardOutListMeta.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/JsonApiFactOutRelationships.md b/gooddata-api-client/docs/JsonApiFactOutRelationships.md index 009973c96..b8c5229f7 100644 --- a/gooddata-api-client/docs/JsonApiFactOutRelationships.md +++ b/gooddata-api-client/docs/JsonApiFactOutRelationships.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **dataset** | [**JsonApiAttributeOutRelationshipsDataset**](JsonApiAttributeOutRelationshipsDataset.md) | | [optional] +**source_fact** | [**JsonApiFactOutRelationshipsSourceFact**](JsonApiFactOutRelationshipsSourceFact.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/JsonApiFactOutRelationshipsSourceFact.md b/gooddata-api-client/docs/JsonApiFactOutRelationshipsSourceFact.md new file mode 100644 index 000000000..29ca480d0 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiFactOutRelationshipsSourceFact.md @@ -0,0 +1,12 @@ +# JsonApiFactOutRelationshipsSourceFact + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**JsonApiFactToOneLinkage**](JsonApiFactToOneLinkage.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/JsonApiFactToOneLinkage.md b/gooddata-api-client/docs/JsonApiFactToOneLinkage.md new file mode 100644 index 000000000..7c2dfeb88 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiFactToOneLinkage.md @@ -0,0 +1,14 @@ +# JsonApiFactToOneLinkage + +References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] +**type** | **str** | | [optional] if omitted the server will use the default value of "fact" +**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 1592d4ff2..9f3101058 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderInAttributes.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderInAttributes.md @@ -8,7 +8,11 @@ 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] **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] diff --git a/gooddata-api-client/docs/JsonApiIdentityProviderLinkage.md b/gooddata-api-client/docs/JsonApiIdentityProviderLinkage.md new file mode 100644 index 000000000..84f44d4c2 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiIdentityProviderLinkage.md @@ -0,0 +1,14 @@ +# JsonApiIdentityProviderLinkage + +The \\\"type\\\" and \\\"id\\\" to non-empty members. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | +**type** | **str** | | defaults to "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] + +[[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 7931c2f12..055657710 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderOutAttributes.md @@ -7,7 +7,11 @@ 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] **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] +**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] **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 index d4f0a570a..0ec1f42e7 100644 --- a/gooddata-api-client/docs/JsonApiIdentityProviderPatchAttributes.md +++ b/gooddata-api-client/docs/JsonApiIdentityProviderPatchAttributes.md @@ -8,7 +8,11 @@ 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. | [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] diff --git a/gooddata-api-client/docs/JsonApiIdentityProviderToOneLinkage.md b/gooddata-api-client/docs/JsonApiIdentityProviderToOneLinkage.md new file mode 100644 index 000000000..6ac6346ab --- /dev/null +++ b/gooddata-api-client/docs/JsonApiIdentityProviderToOneLinkage.md @@ -0,0 +1,14 @@ +# JsonApiIdentityProviderToOneLinkage + +References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] +**type** | **str** | | [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] + +[[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 48e11a6a0..2f8a3840a 100644 --- a/gooddata-api-client/docs/JsonApiLlmEndpointInAttributes.md +++ b/gooddata-api-client/docs/JsonApiLlmEndpointInAttributes.md @@ -7,7 +7,6 @@ Name | Type | Description | Notes **title** | **str** | User-facing title of the LLM Provider. | **token** | **str** | The token to use to connect to the LLM provider. | **base_url** | **str, none_type** | Custom LLM endpoint. | [optional] -**description** | **str, none_type** | User-facing description of the LLM Provider. | [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" diff --git a/gooddata-api-client/docs/JsonApiLlmEndpointOutAttributes.md b/gooddata-api-client/docs/JsonApiLlmEndpointOutAttributes.md index fb340b2a0..aa8449680 100644 --- a/gooddata-api-client/docs/JsonApiLlmEndpointOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiLlmEndpointOutAttributes.md @@ -6,7 +6,6 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **title** | **str** | User-facing title of the LLM Provider. | **base_url** | **str, none_type** | Custom LLM endpoint. | [optional] -**description** | **str, none_type** | User-facing description of the LLM Provider. | [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" diff --git a/gooddata-api-client/docs/JsonApiLlmEndpointPatchAttributes.md b/gooddata-api-client/docs/JsonApiLlmEndpointPatchAttributes.md index dc4f473cc..b4c0f83db 100644 --- a/gooddata-api-client/docs/JsonApiLlmEndpointPatchAttributes.md +++ b/gooddata-api-client/docs/JsonApiLlmEndpointPatchAttributes.md @@ -5,7 +5,6 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **base_url** | **str, none_type** | Custom LLM endpoint. | [optional] -**description** | **str, none_type** | User-facing description of the LLM Provider. | [optional] **llm_model** | **str** | 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" diff --git a/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOut.md b/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOut.md new file mode 100644 index 000000000..77175b45c --- /dev/null +++ b/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOut.md @@ -0,0 +1,15 @@ +# JsonApiNotificationChannelIdentifierOut + +JSON:API representation of notificationChannelIdentifier entity. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | API identifier of an object | +**type** | **str** | Object type | defaults to "notificationChannelIdentifier" +**attributes** | [**JsonApiNotificationChannelIdentifierOutAttributes**](JsonApiNotificationChannelIdentifierOutAttributes.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/JsonApiNotificationChannelIdentifierOutAttributes.md b/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOutAttributes.md new file mode 100644 index 000000000..6de452938 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOutAttributes.md @@ -0,0 +1,15 @@ +# JsonApiNotificationChannelIdentifierOutAttributes + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**allowed_recipients** | **str** | Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization | [optional] +**description** | **str, none_type** | | [optional] +**destination_type** | **str** | | [optional] +**name** | **str, none_type** | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOutDocument.md b/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOutDocument.md new file mode 100644 index 000000000..6b56fa718 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOutDocument.md @@ -0,0 +1,13 @@ +# JsonApiNotificationChannelIdentifierOutDocument + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**JsonApiNotificationChannelIdentifierOut**](JsonApiNotificationChannelIdentifierOut.md) | | +**links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOutList.md b/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOutList.md new file mode 100644 index 000000000..8ad13922c --- /dev/null +++ b/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOutList.md @@ -0,0 +1,15 @@ +# JsonApiNotificationChannelIdentifierOutList + +A JSON:API document with a list of resources + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**[JsonApiNotificationChannelIdentifierOutWithLinks]**](JsonApiNotificationChannelIdentifierOutWithLinks.md) | | +**links** | [**ListLinks**](ListLinks.md) | | [optional] +**meta** | [**JsonApiAnalyticalDashboardOutListMeta**](JsonApiAnalyticalDashboardOutListMeta.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/JsonApiNotificationChannelIdentifierOutWithLinks.md b/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOutWithLinks.md new file mode 100644 index 000000000..2f551b9cd --- /dev/null +++ b/gooddata-api-client/docs/JsonApiNotificationChannelIdentifierOutWithLinks.md @@ -0,0 +1,15 @@ +# JsonApiNotificationChannelIdentifierOutWithLinks + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | API identifier of an object | +**type** | **str** | Object type | defaults to "notificationChannelIdentifier" +**attributes** | [**JsonApiNotificationChannelIdentifierOutAttributes**](JsonApiNotificationChannelIdentifierOutAttributes.md) | | [optional] +**links** | [**ObjectLinks**](ObjectLinks.md) | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/JsonApiNotificationChannelInAttributes.md b/gooddata-api-client/docs/JsonApiNotificationChannelInAttributes.md index a4431c7b8..6a0726098 100644 --- a/gooddata-api-client/docs/JsonApiNotificationChannelInAttributes.md +++ b/gooddata-api-client/docs/JsonApiNotificationChannelInAttributes.md @@ -5,12 +5,13 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **allowed_recipients** | **str** | Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization | [optional] -**custom_dashboard_url** | **str** | Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}. | [optional] +**custom_dashboard_url** | **str** | Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are: {workspaceId} {dashboardId} {automationId} {asOfDate} | [optional] **dashboard_link_visibility** | **str** | Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link | [optional] **description** | **str, none_type** | | [optional] **destination** | [**JsonApiNotificationChannelInAttributesDestination**](JsonApiNotificationChannelInAttributesDestination.md) | | [optional] **in_platform_notification** | **str** | In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications | [optional] **name** | **str, none_type** | | [optional] +**notification_source** | **str** | Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are: {{workspaceId}} {{workspaceName}} {{workspaceDescription}} {{dashboardId}} {{dashboardName}} {{dashboardDescription}} | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/gooddata-api-client/docs/JsonApiNotificationChannelOutAttributes.md b/gooddata-api-client/docs/JsonApiNotificationChannelOutAttributes.md index 85af938c5..5646c49cc 100644 --- a/gooddata-api-client/docs/JsonApiNotificationChannelOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiNotificationChannelOutAttributes.md @@ -5,13 +5,14 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **allowed_recipients** | **str** | Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization | [optional] -**custom_dashboard_url** | **str** | Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}. | [optional] +**custom_dashboard_url** | **str** | Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are: {workspaceId} {dashboardId} {automationId} {asOfDate} | [optional] **dashboard_link_visibility** | **str** | Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link | [optional] **description** | **str, none_type** | | [optional] **destination** | [**JsonApiNotificationChannelInAttributesDestination**](JsonApiNotificationChannelInAttributesDestination.md) | | [optional] **destination_type** | **str, none_type** | | [optional] **in_platform_notification** | **str** | In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications | [optional] **name** | **str, none_type** | | [optional] +**notification_source** | **str** | Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are: {{workspaceId}} {{workspaceName}} {{workspaceDescription}} {{dashboardId}} {{dashboardName}} {{dashboardDescription}} | [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/JsonApiOrganizationIn.md b/gooddata-api-client/docs/JsonApiOrganizationIn.md index 69e48d876..6240b9172 100644 --- a/gooddata-api-client/docs/JsonApiOrganizationIn.md +++ b/gooddata-api-client/docs/JsonApiOrganizationIn.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "organization" **attributes** | [**JsonApiOrganizationInAttributes**](JsonApiOrganizationInAttributes.md) | | [optional] +**relationships** | [**JsonApiOrganizationInRelationships**](JsonApiOrganizationInRelationships.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/JsonApiOrganizationInRelationships.md b/gooddata-api-client/docs/JsonApiOrganizationInRelationships.md new file mode 100644 index 000000000..b7d37bca7 --- /dev/null +++ b/gooddata-api-client/docs/JsonApiOrganizationInRelationships.md @@ -0,0 +1,12 @@ +# JsonApiOrganizationInRelationships + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**identity_provider** | [**JsonApiOrganizationInRelationshipsIdentityProvider**](JsonApiOrganizationInRelationshipsIdentityProvider.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/JsonApiOrganizationInRelationshipsIdentityProvider.md b/gooddata-api-client/docs/JsonApiOrganizationInRelationshipsIdentityProvider.md new file mode 100644 index 000000000..4398dca3b --- /dev/null +++ b/gooddata-api-client/docs/JsonApiOrganizationInRelationshipsIdentityProvider.md @@ -0,0 +1,12 @@ +# JsonApiOrganizationInRelationshipsIdentityProvider + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**JsonApiIdentityProviderToOneLinkage**](JsonApiIdentityProviderToOneLinkage.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/JsonApiOrganizationOutIncludes.md b/gooddata-api-client/docs/JsonApiOrganizationOutIncludes.md index 3616a8b50..2c71fb0bb 100644 --- a/gooddata-api-client/docs/JsonApiOrganizationOutIncludes.md +++ b/gooddata-api-client/docs/JsonApiOrganizationOutIncludes.md @@ -4,11 +4,11 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**attributes** | [**JsonApiUserGroupInAttributes**](JsonApiUserGroupInAttributes.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 "userGroup" +**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] [[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/JsonApiOrganizationOutRelationships.md b/gooddata-api-client/docs/JsonApiOrganizationOutRelationships.md index 11b9f425d..1a4ce9d5b 100644 --- a/gooddata-api-client/docs/JsonApiOrganizationOutRelationships.md +++ b/gooddata-api-client/docs/JsonApiOrganizationOutRelationships.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **bootstrap_user** | [**JsonApiFilterViewInRelationshipsUser**](JsonApiFilterViewInRelationshipsUser.md) | | [optional] **bootstrap_user_group** | [**JsonApiOrganizationOutRelationshipsBootstrapUserGroup**](JsonApiOrganizationOutRelationshipsBootstrapUserGroup.md) | | [optional] +**identity_provider** | [**JsonApiOrganizationInRelationshipsIdentityProvider**](JsonApiOrganizationInRelationshipsIdentityProvider.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/JsonApiOrganizationPatch.md b/gooddata-api-client/docs/JsonApiOrganizationPatch.md index 8d58832db..8d4d7ce20 100644 --- a/gooddata-api-client/docs/JsonApiOrganizationPatch.md +++ b/gooddata-api-client/docs/JsonApiOrganizationPatch.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes **id** | **str** | API identifier of an object | **type** | **str** | Object type | defaults to "organization" **attributes** | [**JsonApiOrganizationInAttributes**](JsonApiOrganizationInAttributes.md) | | [optional] +**relationships** | [**JsonApiOrganizationInRelationships**](JsonApiOrganizationInRelationships.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/LDMDeclarativeAPIsApi.md b/gooddata-api-client/docs/LDMDeclarativeAPIsApi.md index 610d36764..c84bd8b63 100644 --- a/gooddata-api-client/docs/LDMDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/LDMDeclarativeAPIsApi.md @@ -173,6 +173,13 @@ with gooddata_api_client.ApiClient() as api_client: id="fact.customer_order_count", source_column="customer_order_count", source_column_data_type="NUMERIC", + source_fact_reference=DeclarativeSourceFactReference( + id=FactIdentifier( + id="fact_id", + type="fact", + ), + operation="SUM", + ), tags=["Customers"], title="Customer order count", ), @@ -184,6 +191,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], id="customers", + precedence=0, references=[ DeclarativeReference( identifier=ReferenceIdentifier( diff --git a/gooddata-api-client/docs/LLMEndpointsApi.md b/gooddata-api-client/docs/LLMEndpointsApi.md index 2cf88ff4b..32717bc88 100644 --- a/gooddata-api-client/docs/LLMEndpointsApi.md +++ b/gooddata-api-client/docs/LLMEndpointsApi.md @@ -42,7 +42,6 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiLlmEndpointIn( attributes=JsonApiLlmEndpointInAttributes( base_url="base_url_example", - description="description_example", llm_model="llm_model_example", llm_organization="llm_organization_example", provider="OPENAI", @@ -117,7 +116,7 @@ with gooddata_api_client.ApiClient() as api_client: # Create an instance of the API class api_instance = llm_endpoints_api.LLMEndpointsApi(api_client) id = "/6bUUGjjNSwg0_bs" # str | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -188,7 +187,7 @@ configuration = gooddata_api_client.Configuration( with gooddata_api_client.ApiClient() as api_client: # Create an instance of the API class api_instance = llm_endpoints_api.LLMEndpointsApi(api_client) - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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 = [ @@ -267,7 +266,7 @@ with gooddata_api_client.ApiClient() as api_client: # Create an instance of the API class api_instance = llm_endpoints_api.LLMEndpointsApi(api_client) id = "/6bUUGjjNSwg0_bs" # str | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -348,7 +347,6 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiLlmEndpointPatch( attributes=JsonApiLlmEndpointPatchAttributes( base_url="base_url_example", - description="description_example", llm_model="llm_model_example", llm_organization="llm_organization_example", provider="OPENAI", @@ -359,7 +357,7 @@ with gooddata_api_client.ApiClient() as api_client: type="llmEndpoint", ), ) # JsonApiLlmEndpointPatchDocument | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -441,7 +439,6 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiLlmEndpointIn( attributes=JsonApiLlmEndpointInAttributes( base_url="base_url_example", - description="description_example", llm_model="llm_model_example", llm_organization="llm_organization_example", provider="OPENAI", @@ -452,7 +449,7 @@ with gooddata_api_client.ApiClient() as api_client: type="llmEndpoint", ), ) # JsonApiLlmEndpointInDocument | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: diff --git a/gooddata-api-client/docs/LayoutApi.md b/gooddata-api-client/docs/LayoutApi.md index 4c91bc9bf..e9941b604 100644 --- a/gooddata-api-client/docs/LayoutApi.md +++ b/gooddata-api-client/docs/LayoutApi.md @@ -2122,6 +2122,13 @@ with gooddata_api_client.ApiClient() as api_client: id="fact.customer_order_count", source_column="customer_order_count", source_column_data_type="NUMERIC", + source_fact_reference=DeclarativeSourceFactReference( + id=FactIdentifier( + id="fact_id", + type="fact", + ), + operation="SUM", + ), tags=["Customers"], title="Customer order count", ), @@ -2133,6 +2140,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], id="customers", + precedence=0, references=[ DeclarativeReference( identifier=ReferenceIdentifier( @@ -2561,6 +2569,59 @@ with gooddata_api_client.ApiClient() as api_client: id="webhook123", type="notificationChannel", ), + raw_exports=[ + AutomationRawExport( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], recipients=[ DeclarativeUserIdentifier( id="employee123", @@ -2572,6 +2633,23 @@ with gooddata_api_client.ApiClient() as api_client: first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + AutomationSlidesExport( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ AutomationTabularExport( @@ -2595,6 +2673,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -3014,7 +3093,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), ] # [DeclarativeIdentityProvider] | @@ -3143,6 +3230,13 @@ with gooddata_api_client.ApiClient() as api_client: id="fact.customer_order_count", source_column="customer_order_count", source_column_data_type="NUMERIC", + source_fact_reference=DeclarativeSourceFactReference( + id=FactIdentifier( + id="fact_id", + type="fact", + ), + operation="SUM", + ), tags=["Customers"], title="Customer order count", ), @@ -3154,6 +3248,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], id="customers", + precedence=0, references=[ DeclarativeReference( identifier=ReferenceIdentifier( @@ -3295,6 +3390,7 @@ with gooddata_api_client.ApiClient() as api_client: id="notification-channel-1", in_platform_notification="DISABLED", name="channel", + notification_source="notification_source_example", ), ], ) # DeclarativeNotificationChannels | @@ -3485,7 +3581,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), ], @@ -3505,6 +3609,7 @@ with gooddata_api_client.ApiClient() as api_client: id="notification-channel-1", in_platform_notification="DISABLED", name="channel", + notification_source="notification_source_example", ), ], organization=DeclarativeOrganizationInfo( @@ -3532,6 +3637,10 @@ with gooddata_api_client.ApiClient() as api_client: ], hostname="alpha.com", id="Alpha corporation", + identity_provider=DeclarativeIdentityProviderIdentifier( + id="gooddata.com", + type="identityProvider", + ), name="Alpha corporation", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", @@ -3738,6 +3847,59 @@ with gooddata_api_client.ApiClient() as api_client: id="webhook123", type="notificationChannel", ), + raw_exports=[ + AutomationRawExport( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], recipients=[ DeclarativeUserIdentifier( id="employee123", @@ -3749,6 +3911,23 @@ with gooddata_api_client.ApiClient() as api_client: first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + AutomationSlidesExport( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ AutomationTabularExport( @@ -3772,6 +3951,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -4055,6 +4235,13 @@ with gooddata_api_client.ApiClient() as api_client: id="fact.customer_order_count", source_column="customer_order_count", source_column_data_type="NUMERIC", + source_fact_reference=DeclarativeSourceFactReference( + id=FactIdentifier( + id="fact_id", + type="fact", + ), + operation="SUM", + ), tags=["Customers"], title="Customer order count", ), @@ -4066,6 +4253,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], id="customers", + precedence=0, references=[ DeclarativeReference( identifier=ReferenceIdentifier( @@ -4850,6 +5038,59 @@ with gooddata_api_client.ApiClient() as api_client: id="webhook123", type="notificationChannel", ), + raw_exports=[ + AutomationRawExport( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], recipients=[ DeclarativeUserIdentifier( id="employee123", @@ -4861,6 +5102,23 @@ with gooddata_api_client.ApiClient() as api_client: first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + AutomationSlidesExport( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ AutomationTabularExport( @@ -4884,6 +5142,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -5167,6 +5426,13 @@ with gooddata_api_client.ApiClient() as api_client: id="fact.customer_order_count", source_column="customer_order_count", source_column_data_type="NUMERIC", + source_fact_reference=DeclarativeSourceFactReference( + id=FactIdentifier( + id="fact_id", + type="fact", + ), + operation="SUM", + ), tags=["Customers"], title="Customer order count", ), @@ -5178,6 +5444,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], id="customers", + precedence=0, references=[ DeclarativeReference( identifier=ReferenceIdentifier( diff --git a/gooddata-api-client/docs/NotificationChannelsApi.md b/gooddata-api-client/docs/NotificationChannelsApi.md index 075c16494..20c8130d0 100644 --- a/gooddata-api-client/docs/NotificationChannelsApi.md +++ b/gooddata-api-client/docs/NotificationChannelsApi.md @@ -57,6 +57,7 @@ with gooddata_api_client.ApiClient() as api_client: destination=JsonApiNotificationChannelInAttributesDestination(None), in_platform_notification="DISABLED", name="name_example", + notification_source="notification_source_example", ), id="id1", type="notificationChannel", @@ -700,6 +701,7 @@ with gooddata_api_client.ApiClient() as api_client: destination=JsonApiNotificationChannelInAttributesDestination(None), in_platform_notification="DISABLED", name="name_example", + notification_source="notification_source_example", ), id="id1", type="notificationChannel", @@ -934,6 +936,7 @@ with gooddata_api_client.ApiClient() as api_client: id="notification-channel-1", in_platform_notification="DISABLED", name="channel", + notification_source="notification_source_example", ), ], ) # DeclarativeNotificationChannels | @@ -1163,6 +1166,7 @@ with gooddata_api_client.ApiClient() as api_client: destination=JsonApiNotificationChannelInAttributesDestination(None), in_platform_notification="DISABLED", name="name_example", + notification_source="notification_source_example", ), id="id1", type="notificationChannel", diff --git a/gooddata-api-client/docs/OrganizationControllerApi.md b/gooddata-api-client/docs/OrganizationControllerApi.md index a7676cb39..16e37f3e5 100644 --- a/gooddata-api-client/docs/OrganizationControllerApi.md +++ b/gooddata-api-client/docs/OrganizationControllerApi.md @@ -116,7 +116,7 @@ with gooddata_api_client.ApiClient() as api_client: id = "/6bUUGjjNSwg0_bs" # str | filter = "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=bootstrapUser,bootstrapUserGroup", + "include=bootstrapUser,bootstrapUserGroup,identityProvider", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) meta_include = [ "metaInclude=permissions,all", @@ -312,12 +312,17 @@ with gooddata_api_client.ApiClient() as api_client: oauth_subject_id_claim="oid", ), id="id1", + relationships=JsonApiOrganizationInRelationships( + identity_provider=JsonApiOrganizationInRelationshipsIdentityProvider( + data=JsonApiIdentityProviderToOneLinkage(None), + ), + ), type="organization", ), ) # JsonApiOrganizationPatchDocument | filter = "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=bootstrapUser,bootstrapUserGroup", + "include=bootstrapUser,bootstrapUserGroup,identityProvider", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) # example passing only required values which don't have defaults set @@ -510,12 +515,17 @@ with gooddata_api_client.ApiClient() as api_client: oauth_subject_id_claim="oid", ), id="id1", + relationships=JsonApiOrganizationInRelationships( + identity_provider=JsonApiOrganizationInRelationshipsIdentityProvider( + data=JsonApiIdentityProviderToOneLinkage(None), + ), + ), type="organization", ), ) # JsonApiOrganizationInDocument | filter = "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=bootstrapUser,bootstrapUserGroup", + "include=bootstrapUser,bootstrapUserGroup,identityProvider", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) # example passing only required values which don't have defaults set diff --git a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md index 986a12509..2325a1c85 100644 --- a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md @@ -227,7 +227,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), ], @@ -247,6 +255,7 @@ with gooddata_api_client.ApiClient() as api_client: id="notification-channel-1", in_platform_notification="DISABLED", name="channel", + notification_source="notification_source_example", ), ], organization=DeclarativeOrganizationInfo( @@ -274,6 +283,10 @@ with gooddata_api_client.ApiClient() as api_client: ], hostname="alpha.com", id="Alpha corporation", + identity_provider=DeclarativeIdentityProviderIdentifier( + id="gooddata.com", + type="identityProvider", + ), name="Alpha corporation", oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", @@ -480,6 +493,59 @@ with gooddata_api_client.ApiClient() as api_client: id="webhook123", type="notificationChannel", ), + raw_exports=[ + AutomationRawExport( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], recipients=[ DeclarativeUserIdentifier( id="employee123", @@ -491,6 +557,23 @@ with gooddata_api_client.ApiClient() as api_client: first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + AutomationSlidesExport( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ AutomationTabularExport( @@ -514,6 +597,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -797,6 +881,13 @@ with gooddata_api_client.ApiClient() as api_client: id="fact.customer_order_count", source_column="customer_order_count", source_column_data_type="NUMERIC", + source_fact_reference=DeclarativeSourceFactReference( + id=FactIdentifier( + id="fact_id", + type="fact", + ), + operation="SUM", + ), tags=["Customers"], title="Customer order count", ), @@ -808,6 +899,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], id="customers", + precedence=0, references=[ DeclarativeReference( identifier=ReferenceIdentifier( diff --git a/gooddata-api-client/docs/OrganizationEntityAPIsApi.md b/gooddata-api-client/docs/OrganizationEntityAPIsApi.md index 29ddf7570..2358cb512 100644 --- a/gooddata-api-client/docs/OrganizationEntityAPIsApi.md +++ b/gooddata-api-client/docs/OrganizationEntityAPIsApi.md @@ -346,7 +346,7 @@ with gooddata_api_client.ApiClient() as api_client: id = "/6bUUGjjNSwg0_bs" # str | filter = "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=bootstrapUser,bootstrapUserGroup", + "include=bootstrapUser,bootstrapUserGroup,identityProvider", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) meta_include = [ "metaInclude=permissions,all", @@ -610,12 +610,17 @@ with gooddata_api_client.ApiClient() as api_client: oauth_subject_id_claim="oid", ), id="id1", + relationships=JsonApiOrganizationInRelationships( + identity_provider=JsonApiOrganizationInRelationshipsIdentityProvider( + data=JsonApiIdentityProviderToOneLinkage(None), + ), + ), type="organization", ), ) # JsonApiOrganizationPatchDocument | filter = "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=bootstrapUser,bootstrapUserGroup", + "include=bootstrapUser,bootstrapUserGroup,identityProvider", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) # example passing only required values which don't have defaults set @@ -808,12 +813,17 @@ with gooddata_api_client.ApiClient() as api_client: oauth_subject_id_claim="oid", ), id="id1", + relationships=JsonApiOrganizationInRelationships( + identity_provider=JsonApiOrganizationInRelationshipsIdentityProvider( + data=JsonApiIdentityProviderToOneLinkage(None), + ), + ), type="organization", ), ) # JsonApiOrganizationInDocument | filter = "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=bootstrapUser,bootstrapUserGroup", + "include=bootstrapUser,bootstrapUserGroup,identityProvider", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) # example passing only required values which don't have defaults set diff --git a/gooddata-api-client/docs/OrganizationModelControllerApi.md b/gooddata-api-client/docs/OrganizationModelControllerApi.md index fd6765934..8ec2d361b 100644 --- a/gooddata-api-client/docs/OrganizationModelControllerApi.md +++ b/gooddata-api-client/docs/OrganizationModelControllerApi.md @@ -39,6 +39,7 @@ Method | HTTP request | Description [**get_all_entities_identity_providers**](OrganizationModelControllerApi.md#get_all_entities_identity_providers) | **GET** /api/v1/entities/identityProviders | Get all Identity Providers [**get_all_entities_jwks**](OrganizationModelControllerApi.md#get_all_entities_jwks) | **GET** /api/v1/entities/jwks | Get all Jwks [**get_all_entities_llm_endpoints**](OrganizationModelControllerApi.md#get_all_entities_llm_endpoints) | **GET** /api/v1/entities/llmEndpoints | Get all LLM endpoint entities +[**get_all_entities_notification_channel_identifiers**](OrganizationModelControllerApi.md#get_all_entities_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers | [**get_all_entities_notification_channels**](OrganizationModelControllerApi.md#get_all_entities_notification_channels) | **GET** /api/v1/entities/notificationChannels | Get all Notification Channel entities [**get_all_entities_organization_settings**](OrganizationModelControllerApi.md#get_all_entities_organization_settings) | **GET** /api/v1/entities/organizationSettings | Get Organization entities [**get_all_entities_themes**](OrganizationModelControllerApi.md#get_all_entities_themes) | **GET** /api/v1/entities/themes | Get all Theming entities @@ -55,6 +56,7 @@ Method | HTTP request | Description [**get_entity_identity_providers**](OrganizationModelControllerApi.md#get_entity_identity_providers) | **GET** /api/v1/entities/identityProviders/{id} | Get Identity Provider [**get_entity_jwks**](OrganizationModelControllerApi.md#get_entity_jwks) | **GET** /api/v1/entities/jwks/{id} | Get Jwk [**get_entity_llm_endpoints**](OrganizationModelControllerApi.md#get_entity_llm_endpoints) | **GET** /api/v1/entities/llmEndpoints/{id} | Get LLM endpoint entity +[**get_entity_notification_channel_identifiers**](OrganizationModelControllerApi.md#get_entity_notification_channel_identifiers) | **GET** /api/v1/entities/notificationChannelIdentifiers/{id} | [**get_entity_notification_channels**](OrganizationModelControllerApi.md#get_entity_notification_channels) | **GET** /api/v1/entities/notificationChannels/{id} | Get Notification Channel entity [**get_entity_organization_settings**](OrganizationModelControllerApi.md#get_entity_organization_settings) | **GET** /api/v1/entities/organizationSettings/{id} | Get Organization entity [**get_entity_themes**](OrganizationModelControllerApi.md#get_entity_themes) | **GET** /api/v1/entities/themes/{id} | Get Theming @@ -525,7 +527,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), id="id1", @@ -677,7 +687,6 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiLlmEndpointIn( attributes=JsonApiLlmEndpointInAttributes( base_url="base_url_example", - description="description_example", llm_model="llm_model_example", llm_organization="llm_organization_example", provider="OPENAI", @@ -763,6 +772,7 @@ with gooddata_api_client.ApiClient() as api_client: destination=JsonApiNotificationChannelInAttributesDestination(None), in_platform_notification="DISABLED", name="name_example", + notification_source="notification_source_example", ), id="id1", type="notificationChannel", @@ -1738,7 +1748,7 @@ with gooddata_api_client.ApiClient() as api_client: # Create an instance of the API class api_instance = organization_model_controller_api.OrganizationModelControllerApi(api_client) id = "/6bUUGjjNSwg0_bs" # str | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -2885,7 +2895,7 @@ configuration = gooddata_api_client.Configuration( with gooddata_api_client.ApiClient() as api_client: # Create an instance of the API class api_instance = organization_model_controller_api.OrganizationModelControllerApi(api_client) - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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 = [ @@ -2930,6 +2940,83 @@ 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_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 organization_model_controller_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 = organization_model_controller_api.OrganizationModelControllerApi(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 OrganizationModelControllerApi->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 | @@ -4154,7 +4241,7 @@ with gooddata_api_client.ApiClient() as api_client: # Create an instance of the API class api_instance = organization_model_controller_api.OrganizationModelControllerApi(api_client) id = "/6bUUGjjNSwg0_bs" # str | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -4196,6 +4283,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 organization_model_controller_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 = organization_model_controller_api.OrganizationModelControllerApi(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 OrganizationModelControllerApi->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 OrganizationModelControllerApi->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 | @@ -5235,7 +5396,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), id="id1", @@ -5413,7 +5582,6 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiLlmEndpointPatch( attributes=JsonApiLlmEndpointPatchAttributes( base_url="base_url_example", - description="description_example", llm_model="llm_model_example", llm_organization="llm_organization_example", provider="OPENAI", @@ -5424,7 +5592,7 @@ with gooddata_api_client.ApiClient() as api_client: type="llmEndpoint", ), ) # JsonApiLlmEndpointPatchDocument | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -5512,6 +5680,7 @@ with gooddata_api_client.ApiClient() as api_client: destination=JsonApiNotificationChannelInAttributesDestination(None), in_platform_notification="DISABLED", name="name_example", + notification_source="notification_source_example", ), id="id1", type="notificationChannel", @@ -6539,7 +6708,15 @@ with gooddata_api_client.ApiClient() as api_client: identifiers=["gooddata.com"], oauth_client_id="oauth_client_id_example", oauth_client_secret="oauth_client_secret_example", + oauth_custom_auth_attributes={ + "key": "key_example", + }, + oauth_custom_scopes=[ + "oauth_custom_scopes_example", + ], + oauth_issuer_id="myOidcProvider", oauth_issuer_location="oauth_issuer_location_example", + oauth_subject_id_claim="oid", saml_metadata="saml_metadata_example", ), id="id1", @@ -6717,7 +6894,6 @@ with gooddata_api_client.ApiClient() as api_client: data=JsonApiLlmEndpointIn( attributes=JsonApiLlmEndpointInAttributes( base_url="base_url_example", - description="description_example", llm_model="llm_model_example", llm_organization="llm_organization_example", provider="OPENAI", @@ -6728,7 +6904,7 @@ with gooddata_api_client.ApiClient() as api_client: type="llmEndpoint", ), ) # JsonApiLlmEndpointInDocument | - filter = "filter=title==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) + filter = "filter=title==someString;provider==LLMProviderValue" # 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: @@ -6816,6 +6992,7 @@ with gooddata_api_client.ApiClient() as api_client: destination=JsonApiNotificationChannelInAttributesDestination(None), in_platform_notification="DISABLED", name="name_example", + notification_source="notification_source_example", ), id="id1", type="notificationChannel", diff --git a/gooddata-api-client/docs/Over.md b/gooddata-api-client/docs/Over.md index 8a2831345..fca355abb 100644 --- a/gooddata-api-client/docs/Over.md +++ b/gooddata-api-client/docs/Over.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**attributes** | **[str]** | | +**attributes** | [**[IdentifierRef]**](IdentifierRef.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/DashboardTabularExportRequestDashboardFiltersOverrideInner.md b/gooddata-api-client/docs/SavedVisualization.md similarity index 60% rename from gooddata-api-client/docs/DashboardTabularExportRequestDashboardFiltersOverrideInner.md rename to gooddata-api-client/docs/SavedVisualization.md index 3e5f1c495..a8e13553a 100644 --- a/gooddata-api-client/docs/DashboardTabularExportRequestDashboardFiltersOverrideInner.md +++ b/gooddata-api-client/docs/SavedVisualization.md @@ -1,11 +1,12 @@ -# DashboardTabularExportRequestDashboardFiltersOverrideInner +# SavedVisualization +Created and saved visualization IDs. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**attribute_filter** | [**DashboardAttributeFilterAttributeFilter**](DashboardAttributeFilterAttributeFilter.md) | | [optional] -**date_filter** | [**DashboardDateFilterDateFilter**](DashboardDateFilterDateFilter.md) | | [optional] +**created_visualization_id** | **str** | Created visualization ID. | +**saved_visualization_id** | **str** | Saved visualization ID. | **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/Settings.md b/gooddata-api-client/docs/Settings.md index d9bf14c40..f2ee2b9a3 100644 --- a/gooddata-api-client/docs/Settings.md +++ b/gooddata-api-client/docs/Settings.md @@ -5,6 +5,7 @@ Additional settings. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**export_info** | **bool** | Include export info sheet in the exported file. Works only with `visualizationObject`. (XLSX) | [optional] if omitted the server will use the default value of False **merge_headers** | **bool** | Merge equal headers in neighbouring cells. (XLSX) | [optional] **pdf_page_size** | **str** | Page size and orientation. (PDF) | [optional] **pdf_table_style** | [**[PdfTableStyle]**](PdfTableStyle.md) | Custom CSS styles for the table. (PDF, HTML) | [optional] diff --git a/gooddata-api-client/docs/SmartFunctionsApi.md b/gooddata-api-client/docs/SmartFunctionsApi.md index ad3387390..7726895f7 100644 --- a/gooddata-api-client/docs/SmartFunctionsApi.md +++ b/gooddata-api-client/docs/SmartFunctionsApi.md @@ -135,6 +135,10 @@ with gooddata_api_client.ApiClient() as api_client: chat_history_request = ChatHistoryRequest( chat_history_interaction_id="chat_history_interaction_id_example", reset=True, + saved_visualization=SavedVisualization( + created_visualization_id="created_visualization_id_example", + saved_visualization_id="saved_visualization_id_example", + ), thread_id_suffix="thread_id_suffix_example", user_feedback="POSITIVE", ) # ChatHistoryRequest | diff --git a/gooddata-api-client/docs/TabularExportApi.md b/gooddata-api-client/docs/TabularExportApi.md index 2f491215f..9f11a8f14 100644 --- a/gooddata-api-client/docs/TabularExportApi.md +++ b/gooddata-api-client/docs/TabularExportApi.md @@ -41,10 +41,17 @@ with gooddata_api_client.ApiClient() as api_client: dashboard_id = "dashboardId_example" # str | dashboard_tabular_export_request = DashboardTabularExportRequest( dashboard_filters_override=[ - DashboardTabularExportRequestDashboardFiltersOverrideInner(None), + DashboardFilter(), ], file_name="result", format="XLSX", + settings=DashboardExportSettings( + export_info=True, + merge_headers=True, + ), + widget_ids=[ + "widget_ids_example", + ], ) # DashboardTabularExportRequest | # example passing only required values which don't have defaults set @@ -136,6 +143,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ diff --git a/gooddata-api-client/docs/WebhookMessageData.md b/gooddata-api-client/docs/WebhookMessageData.md index cdf26bbd0..60bee5e79 100644 --- a/gooddata-api-client/docs/WebhookMessageData.md +++ b/gooddata-api-client/docs/WebhookMessageData.md @@ -9,8 +9,11 @@ Name | Type | Description | Notes **details** | **{str: (str,)}** | | [optional] **filters** | [**[NotificationFilter]**](NotificationFilter.md) | | [optional] **image_exports** | [**[ExportResult]**](ExportResult.md) | | [optional] +**notification_source** | **str** | | [optional] +**raw_exports** | [**[ExportResult]**](ExportResult.md) | | [optional] **recipients** | [**[WebhookRecipient]**](WebhookRecipient.md) | | [optional] **remaining_action_count** | **int** | | [optional] +**slides_exports** | [**[ExportResult]**](ExportResult.md) | | [optional] **tabular_exports** | [**[ExportResult]**](ExportResult.md) | | [optional] **visual_exports** | [**[ExportResult]**](ExportResult.md) | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/gooddata-api-client/docs/WorkspaceObjectControllerApi.md b/gooddata-api-client/docs/WorkspaceObjectControllerApi.md index 192062e01..c87f42d9f 100644 --- a/gooddata-api-client/docs/WorkspaceObjectControllerApi.md +++ b/gooddata-api-client/docs/WorkspaceObjectControllerApi.md @@ -390,11 +390,81 @@ with gooddata_api_client.ApiClient() as api_client: ], widget="widget_example", ), + raw_exports=[ + JsonApiAutomationInAttributesRawExportsInner( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + JsonApiAutomationInAttributesSlidesExportsInner( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ JsonApiAutomationInAttributesTabularExportsInner( @@ -418,6 +488,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -3486,9 +3557,9 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = workspace_object_controller_api.WorkspaceObjectControllerApi(api_client) workspace_id = "workspaceId_example" # str | origin = "ALL" # str | (optional) if omitted the server will use the default value of "ALL" - filter = "filter=title==someString;description==someString;dataset.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + filter = "filter=title==someString;description==someString;dataset.id==321;sourceFact.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=dataset", + "include=dataset,sourceFact", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) page = 0 # int | Zero-based page index (0..N) (optional) if omitted the server will use the default value of 0 size = 20 # int | The size of the page to be returned (optional) if omitted the server will use the default value of 20 @@ -5142,9 +5213,9 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = workspace_object_controller_api.WorkspaceObjectControllerApi(api_client) workspace_id = "workspaceId_example" # str | object_id = "objectId_example" # str | - filter = "filter=title==someString;description==someString;dataset.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) + filter = "filter=title==someString;description==someString;dataset.id==321;sourceFact.id==321" # str | Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123'). (optional) include = [ - "include=dataset", + "include=dataset,sourceFact", ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional) x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False meta_include = [ @@ -6280,11 +6351,81 @@ with gooddata_api_client.ApiClient() as api_client: ], widget="widget_example", ), + raw_exports=[ + JsonApiAutomationInAttributesRawExportsInner( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + JsonApiAutomationInAttributesSlidesExportsInner( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ JsonApiAutomationInAttributesTabularExportsInner( @@ -6308,6 +6449,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -7831,11 +7973,81 @@ with gooddata_api_client.ApiClient() as api_client: ], widget="widget_example", ), + raw_exports=[ + JsonApiAutomationInAttributesRawExportsInner( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], schedule=JsonApiAutomationInAttributesSchedule( cron="0 */30 9-17 ? * MON-FRI", first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + JsonApiAutomationInAttributesSlidesExportsInner( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ JsonApiAutomationInAttributesTabularExportsInner( @@ -7859,6 +8071,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ diff --git a/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md b/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md index 4940f905c..724b1c08f 100644 --- a/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md @@ -383,6 +383,13 @@ with gooddata_api_client.ApiClient() as api_client: id="fact.customer_order_count", source_column="customer_order_count", source_column_data_type="NUMERIC", + source_fact_reference=DeclarativeSourceFactReference( + id=FactIdentifier( + id="fact_id", + type="fact", + ), + operation="SUM", + ), tags=["Customers"], title="Customer order count", ), @@ -394,6 +401,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], id="customers", + precedence=0, references=[ DeclarativeReference( identifier=ReferenceIdentifier( @@ -643,6 +651,59 @@ with gooddata_api_client.ApiClient() as api_client: id="webhook123", type="notificationChannel", ), + raw_exports=[ + AutomationRawExport( + request_payload=RawExportRequest( + custom_override=RawCustomOverride( + labels={ + "key": RawCustomLabel( + title="title_example", + ), + }, + metrics={ + "key": RawCustomMetric( + title="title_example", + ), + }, + ), + execution=AFM( + attributes=[ + AttributeItem( + label=AfmObjectIdentifierLabel( + identifier=AfmObjectIdentifierLabelIdentifier( + id="sample_item.price", + type="label", + ), + ), + local_identifier="attribute_1", + show_all_values=False, + ), + ], + aux_measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + filters=[ + FilterDefinition(), + ], + measures=[ + MeasureItem( + definition=MeasureDefinition(), + local_identifier="metric_1", + ), + ], + ), + execution_settings=ExecutionSettings( + data_sampling_percentage=0, + timestamp=dateutil_parser('1970-01-01T00:00:00.00Z'), + ), + file_name="result", + format="CSV", + ), + ), + ], recipients=[ DeclarativeUserIdentifier( id="employee123", @@ -654,6 +715,23 @@ with gooddata_api_client.ApiClient() as api_client: first_run=dateutil_parser('2025-01-01T12:00:00Z'), timezone="Europe/Prague", ), + slides_exports=[ + AutomationSlidesExport( + request_payload=SlidesExportRequest( + dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + file_name="filename", + format="PDF", + metadata=JsonNode(), + template_id="template_id_example", + visualization_ids=[ + "visualization_ids_example", + ], + widget_ids=[ + "widget_ids_example", + ], + ), + ), + ], state="ACTIVE", tabular_exports=[ AutomationTabularExport( @@ -677,6 +755,7 @@ with gooddata_api_client.ApiClient() as api_client: metadata=JsonNode(), related_dashboard_id="761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", settings=Settings( + export_info=True, merge_headers=True, pdf_page_size="a4 landscape", pdf_table_style=[ @@ -960,6 +1039,13 @@ with gooddata_api_client.ApiClient() as api_client: id="fact.customer_order_count", source_column="customer_order_count", source_column_data_type="NUMERIC", + source_fact_reference=DeclarativeSourceFactReference( + id=FactIdentifier( + id="fact_id", + type="fact", + ), + operation="SUM", + ), tags=["Customers"], title="Customer order count", ), @@ -971,6 +1057,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ], id="customers", + precedence=0, references=[ DeclarativeReference( identifier=ReferenceIdentifier( diff --git a/gooddata-api-client/gooddata_api_client/api/entities_api.py b/gooddata-api-client/gooddata_api_client/api/entities_api.py index 91036ea2e..bedbab0ee 100644 --- a/gooddata-api-client/gooddata_api_client/api/entities_api.py +++ b/gooddata-api-client/gooddata_api_client/api/entities_api.py @@ -111,6 +111,8 @@ from gooddata_api_client.model.json_api_metric_out_list import JsonApiMetricOutList from gooddata_api_client.model.json_api_metric_patch_document import JsonApiMetricPatchDocument from gooddata_api_client.model.json_api_metric_post_optional_id_document import JsonApiMetricPostOptionalIdDocument +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 @@ -5522,7 +5524,9 @@ def __init__(self, api_client=None): ('include',): { "DATASETS": "datasets", + "FACTS": "facts", "DATASET": "dataset", + "SOURCEFACT": "sourceFact", "ALL": "ALL" }, ('meta_include',): { @@ -6309,6 +6313,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,), @@ -9023,7 +9107,9 @@ def __init__(self, api_client=None): ('include',): { "DATASETS": "datasets", + "FACTS": "facts", "DATASET": "dataset", + "SOURCEFACT": "sourceFact", "ALL": "ALL" }, ('meta_include',): { @@ -9631,6 +9717,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,), @@ -9800,8 +9947,10 @@ def __init__(self, api_client=None): "USERS": "users", "USERGROUPS": "userGroups", + "IDENTITYPROVIDERS": "identityProviders", "BOOTSTRAPUSER": "bootstrapUser", "BOOTSTRAPUSERGROUP": "bootstrapUserGroup", + "IDENTITYPROVIDER": "identityProvider", "ALL": "ALL" }, ('meta_include',): { @@ -12272,8 +12421,10 @@ def __init__(self, api_client=None): "USERS": "users", "USERGROUPS": "userGroups", + "IDENTITYPROVIDERS": "identityProviders", "BOOTSTRAPUSER": "bootstrapUser", "BOOTSTRAPUSERGROUP": "bootstrapUserGroup", + "IDENTITYPROVIDER": "identityProvider", "ALL": "ALL" }, }, @@ -14487,8 +14638,10 @@ def __init__(self, api_client=None): "USERS": "users", "USERGROUPS": "userGroups", + "IDENTITYPROVIDERS": "identityProviders", "BOOTSTRAPUSER": "bootstrapUser", "BOOTSTRAPUSERGROUP": "bootstrapUserGroup", + "IDENTITYPROVIDER": "identityProvider", "ALL": "ALL" }, }, @@ -22265,6 +22418,88 @@ def get_all_entities_metrics( workspace_id return self.get_all_entities_metrics_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 @@ -25629,6 +25864,89 @@ def get_entity_metrics( object_id return self.get_entity_metrics_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/facts_api.py b/gooddata-api-client/gooddata_api_client/api/facts_api.py index 0c52ab35b..a725a3578 100644 --- a/gooddata-api-client/gooddata_api_client/api/facts_api.py +++ b/gooddata-api-client/gooddata_api_client/api/facts_api.py @@ -88,7 +88,9 @@ def __init__(self, api_client=None): ('include',): { "DATASETS": "datasets", + "FACTS": "facts", "DATASET": "dataset", + "SOURCEFACT": "sourceFact", "ALL": "ALL" }, ('meta_include',): { @@ -197,7 +199,9 @@ def __init__(self, api_client=None): ('include',): { "DATASETS": "datasets", + "FACTS": "facts", "DATASET": "dataset", + "SOURCEFACT": "sourceFact", "ALL": "ALL" }, ('meta_include',): { diff --git a/gooddata-api-client/gooddata_api_client/api/organization_controller_api.py b/gooddata-api-client/gooddata_api_client/api/organization_controller_api.py index 1df4292b0..751a9da71 100644 --- a/gooddata-api-client/gooddata_api_client/api/organization_controller_api.py +++ b/gooddata-api-client/gooddata_api_client/api/organization_controller_api.py @@ -149,8 +149,10 @@ def __init__(self, api_client=None): "USERS": "users", "USERGROUPS": "userGroups", + "IDENTITYPROVIDERS": "identityProviders", "BOOTSTRAPUSER": "bootstrapUser", "BOOTSTRAPUSERGROUP": "bootstrapUserGroup", + "IDENTITYPROVIDER": "identityProvider", "ALL": "ALL" }, ('meta_include',): { @@ -306,8 +308,10 @@ def __init__(self, api_client=None): "USERS": "users", "USERGROUPS": "userGroups", + "IDENTITYPROVIDERS": "identityProviders", "BOOTSTRAPUSER": "bootstrapUser", "BOOTSTRAPUSERGROUP": "bootstrapUserGroup", + "IDENTITYPROVIDER": "identityProvider", "ALL": "ALL" }, }, @@ -457,8 +461,10 @@ def __init__(self, api_client=None): "USERS": "users", "USERGROUPS": "userGroups", + "IDENTITYPROVIDERS": "identityProviders", "BOOTSTRAPUSER": "bootstrapUser", "BOOTSTRAPUSERGROUP": "bootstrapUserGroup", + "IDENTITYPROVIDER": "identityProvider", "ALL": "ALL" }, }, diff --git a/gooddata-api-client/gooddata_api_client/api/organization_entity_apis_api.py b/gooddata-api-client/gooddata_api_client/api/organization_entity_apis_api.py index 09843f8b0..f9a79997b 100644 --- a/gooddata-api-client/gooddata_api_client/api/organization_entity_apis_api.py +++ b/gooddata-api-client/gooddata_api_client/api/organization_entity_apis_api.py @@ -339,8 +339,10 @@ def __init__(self, api_client=None): "USERS": "users", "USERGROUPS": "userGroups", + "IDENTITYPROVIDERS": "identityProviders", "BOOTSTRAPUSER": "bootstrapUser", "BOOTSTRAPUSERGROUP": "bootstrapUserGroup", + "IDENTITYPROVIDER": "identityProvider", "ALL": "ALL" }, ('meta_include',): { @@ -552,8 +554,10 @@ def __init__(self, api_client=None): "USERS": "users", "USERGROUPS": "userGroups", + "IDENTITYPROVIDERS": "identityProviders", "BOOTSTRAPUSER": "bootstrapUser", "BOOTSTRAPUSERGROUP": "bootstrapUserGroup", + "IDENTITYPROVIDER": "identityProvider", "ALL": "ALL" }, }, @@ -703,8 +707,10 @@ def __init__(self, api_client=None): "USERS": "users", "USERGROUPS": "userGroups", + "IDENTITYPROVIDERS": "identityProviders", "BOOTSTRAPUSER": "bootstrapUser", "BOOTSTRAPUSERGROUP": "bootstrapUserGroup", + "IDENTITYPROVIDER": "identityProvider", "ALL": "ALL" }, }, diff --git a/gooddata-api-client/gooddata_api_client/api/organization_model_controller_api.py b/gooddata-api-client/gooddata_api_client/api/organization_model_controller_api.py index 0f4adfa60..f0093d969 100644 --- a/gooddata-api-client/gooddata_api_client/api/organization_model_controller_api.py +++ b/gooddata-api-client/gooddata_api_client/api/organization_model_controller_api.py @@ -55,6 +55,8 @@ from gooddata_api_client.model.json_api_llm_endpoint_out_document import JsonApiLlmEndpointOutDocument from gooddata_api_client.model.json_api_llm_endpoint_out_list import JsonApiLlmEndpointOutList from gooddata_api_client.model.json_api_llm_endpoint_patch_document import JsonApiLlmEndpointPatchDocument +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 @@ -2309,6 +2311,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,), @@ -3494,6 +3576,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,), @@ -8728,6 +8871,88 @@ def get_all_entities_llm_endpoints( kwargs['_request_auths'] = kwargs.get('_request_auths', None) return self.get_all_entities_llm_endpoints_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 @@ -10062,6 +10287,89 @@ def get_entity_llm_endpoints( id return self.get_entity_llm_endpoints_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/workspace_object_controller_api.py b/gooddata-api-client/gooddata_api_client/api/workspace_object_controller_api.py index 1f639dcf5..c556b88a9 100644 --- a/gooddata-api-client/gooddata_api_client/api/workspace_object_controller_api.py +++ b/gooddata-api-client/gooddata_api_client/api/workspace_object_controller_api.py @@ -3147,7 +3147,9 @@ def __init__(self, api_client=None): ('include',): { "DATASETS": "datasets", + "FACTS": "facts", "DATASET": "dataset", + "SOURCEFACT": "sourceFact", "ALL": "ALL" }, ('meta_include',): { @@ -5107,7 +5109,9 @@ def __init__(self, api_client=None): ('include',): { "DATASETS": "datasets", + "FACTS": "facts", "DATASET": "dataset", + "SOURCEFACT": "sourceFact", "ALL": "ALL" }, ('meta_include',): { 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 54af7c59b..01a594a39 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 @@ -35,6 +35,8 @@ def lazy_import(): 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 + from gooddata_api_client.model.automation_raw_export import AutomationRawExport + from gooddata_api_client.model.automation_slides_export import AutomationSlidesExport from gooddata_api_client.model.automation_tabular_export import AutomationTabularExport from gooddata_api_client.model.automation_visual_export import AutomationVisualExport from gooddata_api_client.model.declarative_analytical_dashboard_identifier import DeclarativeAnalyticalDashboardIdentifier @@ -44,6 +46,8 @@ def lazy_import(): globals()['AutomationExternalRecipient'] = AutomationExternalRecipient globals()['AutomationImageExport'] = AutomationImageExport globals()['AutomationMetadata'] = AutomationMetadata + globals()['AutomationRawExport'] = AutomationRawExport + globals()['AutomationSlidesExport'] = AutomationSlidesExport globals()['AutomationTabularExport'] = AutomationTabularExport globals()['AutomationVisualExport'] = AutomationVisualExport globals()['DeclarativeAnalyticalDashboardIdentifier'] = DeclarativeAnalyticalDashboardIdentifier @@ -88,8 +92,12 @@ class AdHocAutomation(ModelNormal): }, ('image_exports',): { }, + ('raw_exports',): { + }, ('recipients',): { }, + ('slides_exports',): { + }, ('tabular_exports',): { }, ('tags',): { @@ -132,7 +140,9 @@ def openapi_types(): 'image_exports': ([AutomationImageExport],), # noqa: E501 'metadata': (AutomationMetadata,), # noqa: E501 'notification_channel': (DeclarativeNotificationChannelIdentifier,), # noqa: E501 + 'raw_exports': ([AutomationRawExport],), # noqa: E501 'recipients': ([DeclarativeUserIdentifier],), # noqa: E501 + 'slides_exports': ([AutomationSlidesExport],), # noqa: E501 'tabular_exports': ([AutomationTabularExport],), # noqa: E501 'tags': ([str],), # noqa: E501 'title': (str,), # noqa: E501 @@ -153,7 +163,9 @@ def discriminator(): 'image_exports': 'imageExports', # noqa: E501 'metadata': 'metadata', # noqa: E501 'notification_channel': 'notificationChannel', # noqa: E501 + 'raw_exports': 'rawExports', # noqa: E501 'recipients': 'recipients', # noqa: E501 + 'slides_exports': 'slidesExports', # noqa: E501 'tabular_exports': 'tabularExports', # noqa: E501 'tags': 'tags', # noqa: E501 'title': 'title', # noqa: E501 @@ -209,7 +221,9 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 image_exports ([AutomationImageExport]): [optional] # noqa: E501 metadata (AutomationMetadata): [optional] # noqa: E501 notification_channel (DeclarativeNotificationChannelIdentifier): [optional] # noqa: E501 + raw_exports ([AutomationRawExport]): [optional] # noqa: E501 recipients ([DeclarativeUserIdentifier]): [optional] # noqa: E501 + slides_exports ([AutomationSlidesExport]): [optional] # noqa: E501 tabular_exports ([AutomationTabularExport]): [optional] # noqa: E501 tags ([str]): A list of tags.. [optional] # noqa: E501 title (str): [optional] # noqa: E501 @@ -307,7 +321,9 @@ def __init__(self, *args, **kwargs): # noqa: E501 image_exports ([AutomationImageExport]): [optional] # noqa: E501 metadata (AutomationMetadata): [optional] # noqa: E501 notification_channel (DeclarativeNotificationChannelIdentifier): [optional] # noqa: E501 + raw_exports ([AutomationRawExport]): [optional] # noqa: E501 recipients ([DeclarativeUserIdentifier]): [optional] # noqa: E501 + slides_exports ([AutomationSlidesExport]): [optional] # noqa: E501 tabular_exports ([AutomationTabularExport]): [optional] # noqa: E501 tags ([str]): A list of tags.. [optional] # noqa: E501 title (str): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/afm.py b/gooddata-api-client/gooddata_api_client/model/afm.py index c8e7cef99..97eb90fd3 100644 --- a/gooddata-api-client/gooddata_api_client/model/afm.py +++ b/gooddata-api-client/gooddata_api_client/model/afm.py @@ -31,11 +31,11 @@ def lazy_import(): + from gooddata_api_client.model.afm_filters_inner import AFMFiltersInner from gooddata_api_client.model.attribute_item import AttributeItem - from gooddata_api_client.model.filter_definition import FilterDefinition from gooddata_api_client.model.measure_item import MeasureItem + globals()['AFMFiltersInner'] = AFMFiltersInner globals()['AttributeItem'] = AttributeItem - globals()['FilterDefinition'] = FilterDefinition globals()['MeasureItem'] = MeasureItem @@ -93,7 +93,7 @@ def openapi_types(): lazy_import() return { 'attributes': ([AttributeItem],), # noqa: E501 - 'filters': ([FilterDefinition],), # noqa: E501 + 'filters': ([AFMFiltersInner],), # noqa: E501 'measures': ([MeasureItem],), # noqa: E501 'aux_measures': ([MeasureItem],), # noqa: E501 } @@ -122,7 +122,7 @@ def _from_openapi_data(cls, attributes, filters, measures, *args, **kwargs): # Args: attributes ([AttributeItem]): Attributes to be used in the computation. - filters ([FilterDefinition]): Various filter types to filter the execution result. + filters ([AFMFiltersInner]): Various filter types to filter the execution result. measures ([MeasureItem]): Metrics to be computed. Keyword Args: @@ -216,7 +216,7 @@ def __init__(self, attributes, filters, measures, *args, **kwargs): # noqa: E50 Args: attributes ([AttributeItem]): Attributes to be used in the computation. - filters ([FilterDefinition]): Various filter types to filter the execution result. + filters ([AFMFiltersInner]): Various filter types to filter the execution result. measures ([MeasureItem]): Metrics to be computed. Keyword Args: diff --git a/gooddata-api-client/gooddata_api_client/model/afm_filters_inner.py b/gooddata-api-client/gooddata_api_client/model/afm_filters_inner.py new file mode 100644 index 000000000..93300685a --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/afm_filters_inner.py @@ -0,0 +1,363 @@ +""" + 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.absolute_date_filter_absolute_date_filter import AbsoluteDateFilterAbsoluteDateFilter + from gooddata_api_client.model.abstract_measure_value_filter import AbstractMeasureValueFilter + from gooddata_api_client.model.comparison_measure_value_filter_comparison_measure_value_filter import ComparisonMeasureValueFilterComparisonMeasureValueFilter + from gooddata_api_client.model.filter_definition_for_simple_measure import FilterDefinitionForSimpleMeasure + from gooddata_api_client.model.inline_filter_definition import InlineFilterDefinition + from gooddata_api_client.model.inline_filter_definition_inline import InlineFilterDefinitionInline + from gooddata_api_client.model.negative_attribute_filter_negative_attribute_filter import NegativeAttributeFilterNegativeAttributeFilter + from gooddata_api_client.model.positive_attribute_filter_positive_attribute_filter import PositiveAttributeFilterPositiveAttributeFilter + from gooddata_api_client.model.range_measure_value_filter_range_measure_value_filter import RangeMeasureValueFilterRangeMeasureValueFilter + from gooddata_api_client.model.ranking_filter_ranking_filter import RankingFilterRankingFilter + from gooddata_api_client.model.relative_date_filter_relative_date_filter import RelativeDateFilterRelativeDateFilter + globals()['AbsoluteDateFilterAbsoluteDateFilter'] = AbsoluteDateFilterAbsoluteDateFilter + globals()['AbstractMeasureValueFilter'] = AbstractMeasureValueFilter + globals()['ComparisonMeasureValueFilterComparisonMeasureValueFilter'] = ComparisonMeasureValueFilterComparisonMeasureValueFilter + globals()['FilterDefinitionForSimpleMeasure'] = FilterDefinitionForSimpleMeasure + globals()['InlineFilterDefinition'] = InlineFilterDefinition + globals()['InlineFilterDefinitionInline'] = InlineFilterDefinitionInline + globals()['NegativeAttributeFilterNegativeAttributeFilter'] = NegativeAttributeFilterNegativeAttributeFilter + globals()['PositiveAttributeFilterPositiveAttributeFilter'] = PositiveAttributeFilterPositiveAttributeFilter + globals()['RangeMeasureValueFilterRangeMeasureValueFilter'] = RangeMeasureValueFilterRangeMeasureValueFilter + globals()['RankingFilterRankingFilter'] = RankingFilterRankingFilter + globals()['RelativeDateFilterRelativeDateFilter'] = RelativeDateFilterRelativeDateFilter + + +class AFMFiltersInner(ModelComposed): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + } + + additional_properties_type = None + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'comparison_measure_value_filter': (ComparisonMeasureValueFilterComparisonMeasureValueFilter,), # noqa: E501 + 'range_measure_value_filter': (RangeMeasureValueFilterRangeMeasureValueFilter,), # noqa: E501 + 'ranking_filter': (RankingFilterRankingFilter,), # noqa: E501 + 'absolute_date_filter': (AbsoluteDateFilterAbsoluteDateFilter,), # noqa: E501 + 'relative_date_filter': (RelativeDateFilterRelativeDateFilter,), # noqa: E501 + 'negative_attribute_filter': (NegativeAttributeFilterNegativeAttributeFilter,), # noqa: E501 + 'positive_attribute_filter': (PositiveAttributeFilterPositiveAttributeFilter,), # noqa: E501 + 'inline': (InlineFilterDefinitionInline,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'comparison_measure_value_filter': 'comparisonMeasureValueFilter', # noqa: E501 + 'range_measure_value_filter': 'rangeMeasureValueFilter', # noqa: E501 + 'ranking_filter': 'rankingFilter', # noqa: E501 + 'absolute_date_filter': 'absoluteDateFilter', # noqa: E501 + 'relative_date_filter': 'relativeDateFilter', # noqa: E501 + 'negative_attribute_filter': 'negativeAttributeFilter', # noqa: E501 + 'positive_attribute_filter': 'positiveAttributeFilter', # noqa: E501 + 'inline': 'inline', # noqa: E501 + } + + read_only_vars = { + } + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """AFMFiltersInner - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + comparison_measure_value_filter (ComparisonMeasureValueFilterComparisonMeasureValueFilter): [optional] # noqa: E501 + range_measure_value_filter (RangeMeasureValueFilterRangeMeasureValueFilter): [optional] # noqa: E501 + ranking_filter (RankingFilterRankingFilter): [optional] # noqa: E501 + absolute_date_filter (AbsoluteDateFilterAbsoluteDateFilter): [optional] # noqa: E501 + relative_date_filter (RelativeDateFilterRelativeDateFilter): [optional] # noqa: E501 + negative_attribute_filter (NegativeAttributeFilterNegativeAttributeFilter): [optional] # noqa: E501 + positive_attribute_filter (PositiveAttributeFilterPositiveAttributeFilter): [optional] # noqa: E501 + inline (InlineFilterDefinitionInline): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + '_composed_instances', + '_var_name_to_model_instances', + '_additional_properties_model_instances', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """AFMFiltersInner - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + comparison_measure_value_filter (ComparisonMeasureValueFilterComparisonMeasureValueFilter): [optional] # noqa: E501 + range_measure_value_filter (RangeMeasureValueFilterRangeMeasureValueFilter): [optional] # noqa: E501 + ranking_filter (RankingFilterRankingFilter): [optional] # noqa: E501 + absolute_date_filter (AbsoluteDateFilterAbsoluteDateFilter): [optional] # noqa: E501 + relative_date_filter (RelativeDateFilterRelativeDateFilter): [optional] # noqa: E501 + negative_attribute_filter (NegativeAttributeFilterNegativeAttributeFilter): [optional] # noqa: E501 + positive_attribute_filter (PositiveAttributeFilterPositiveAttributeFilter): [optional] # noqa: E501 + inline (InlineFilterDefinitionInline): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") + + @cached_property + def _composed_schemas(): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + lazy_import() + return { + 'anyOf': [ + ], + 'allOf': [ + ], + 'oneOf': [ + AbstractMeasureValueFilter, + FilterDefinitionForSimpleMeasure, + InlineFilterDefinition, + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/dashboard_tabular_export_request_dashboard_filters_override_inner.py b/gooddata-api-client/gooddata_api_client/model/attribute_elements.py similarity index 88% rename from gooddata-api-client/gooddata_api_client/model/dashboard_tabular_export_request_dashboard_filters_override_inner.py rename to gooddata-api-client/gooddata_api_client/model/attribute_elements.py index b8f2b6e74..cdc23674b 100644 --- a/gooddata-api-client/gooddata_api_client/model/dashboard_tabular_export_request_dashboard_filters_override_inner.py +++ b/gooddata-api-client/gooddata_api_client/model/attribute_elements.py @@ -31,17 +31,13 @@ def lazy_import(): - from gooddata_api_client.model.dashboard_attribute_filter import DashboardAttributeFilter - from gooddata_api_client.model.dashboard_attribute_filter_attribute_filter import DashboardAttributeFilterAttributeFilter - from gooddata_api_client.model.dashboard_date_filter import DashboardDateFilter - from gooddata_api_client.model.dashboard_date_filter_date_filter import DashboardDateFilterDateFilter - globals()['DashboardAttributeFilter'] = DashboardAttributeFilter - globals()['DashboardAttributeFilterAttributeFilter'] = DashboardAttributeFilterAttributeFilter - globals()['DashboardDateFilter'] = DashboardDateFilter - globals()['DashboardDateFilterDateFilter'] = DashboardDateFilterDateFilter + from gooddata_api_client.model.attribute_elements_by_ref import AttributeElementsByRef + from gooddata_api_client.model.attribute_elements_by_value import AttributeElementsByValue + globals()['AttributeElementsByRef'] = AttributeElementsByRef + globals()['AttributeElementsByValue'] = AttributeElementsByValue -class DashboardTabularExportRequestDashboardFiltersOverrideInner(ModelComposed): +class AttributeElements(ModelComposed): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -94,8 +90,8 @@ def openapi_types(): """ lazy_import() return { - 'attribute_filter': (DashboardAttributeFilterAttributeFilter,), # noqa: E501 - 'date_filter': (DashboardDateFilterDateFilter,), # noqa: E501 + 'uris': ([str, none_type],), # noqa: E501 + 'values': ([str, none_type],), # noqa: E501 } @cached_property @@ -104,8 +100,8 @@ def discriminator(): attribute_map = { - 'attribute_filter': 'attributeFilter', # noqa: E501 - 'date_filter': 'dateFilter', # noqa: E501 + 'uris': 'uris', # noqa: E501 + 'values': 'values', # noqa: E501 } read_only_vars = { @@ -114,7 +110,7 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 - """DashboardTabularExportRequestDashboardFiltersOverrideInner - a model defined in OpenAPI + """AttributeElements - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -147,8 +143,8 @@ 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,) - attribute_filter (DashboardAttributeFilterAttributeFilter): [optional] # noqa: E501 - date_filter (DashboardDateFilterDateFilter): [optional] # noqa: E501 + uris ([str, none_type]): List of attribute elements by reference. [optional] # noqa: E501 + values ([str, none_type]): List of attribute elements by value. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -219,7 +215,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 @convert_js_args_to_python_args def __init__(self, *args, **kwargs): # noqa: E501 - """DashboardTabularExportRequestDashboardFiltersOverrideInner - a model defined in OpenAPI + """AttributeElements - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -252,8 +248,8 @@ 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,) - attribute_filter (DashboardAttributeFilterAttributeFilter): [optional] # noqa: E501 - date_filter (DashboardDateFilterDateFilter): [optional] # noqa: E501 + uris ([str, none_type]): List of attribute elements by reference. [optional] # noqa: E501 + values ([str, none_type]): List of attribute elements by value. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -325,7 +321,7 @@ def _composed_schemas(): 'allOf': [ ], 'oneOf': [ - DashboardAttributeFilter, - DashboardDateFilter, + AttributeElementsByRef, + AttributeElementsByValue, ], } diff --git a/gooddata-api-client/gooddata_api_client/model/attribute_elements_by_ref.py b/gooddata-api-client/gooddata_api_client/model/attribute_elements_by_ref.py new file mode 100644 index 000000000..5d2270d8c --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/attribute_elements_by_ref.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 AttributeElementsByRef(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 { + 'uris': ([str, none_type],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'uris': 'uris', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, uris, *args, **kwargs): # noqa: E501 + """AttributeElementsByRef - a model defined in OpenAPI + + Args: + uris ([str, none_type]): List of attribute elements by reference + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _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.uris = uris + 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, uris, *args, **kwargs): # noqa: E501 + """AttributeElementsByRef - a model defined in OpenAPI + + Args: + uris ([str, none_type]): List of attribute elements by reference + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _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.uris = uris + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/attribute_elements_by_value.py b/gooddata-api-client/gooddata_api_client/model/attribute_elements_by_value.py new file mode 100644 index 000000000..959f8a6d0 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/attribute_elements_by_value.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 AttributeElementsByValue(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 { + 'values': ([str, none_type],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'values': 'values', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, values, *args, **kwargs): # noqa: E501 + """AttributeElementsByValue - a model defined in OpenAPI + + Args: + values ([str, none_type]): List of attribute elements by value + + 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.values = values + 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, values, *args, **kwargs): # noqa: E501 + """AttributeElementsByValue - a model defined in OpenAPI + + Args: + values ([str, none_type]): List of attribute elements by value + + 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.values = values + 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/automation_raw_export.py b/gooddata-api-client/gooddata_api_client/model/automation_raw_export.py new file mode 100644 index 000000000..cc0d40671 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/automation_raw_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.raw_export_request import RawExportRequest + globals()['RawExportRequest'] = RawExportRequest + + +class AutomationRawExport(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': (RawExportRequest,), # 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 + """AutomationRawExport - a model defined in OpenAPI + + Args: + request_payload (RawExportRequest): + + 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 + """AutomationRawExport - a model defined in OpenAPI + + Args: + request_payload (RawExportRequest): + + 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/automation_slides_export.py b/gooddata-api-client/gooddata_api_client/model/automation_slides_export.py new file mode 100644 index 000000000..bdc92d964 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/automation_slides_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.slides_export_request import SlidesExportRequest + globals()['SlidesExportRequest'] = SlidesExportRequest + + +class AutomationSlidesExport(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': (SlidesExportRequest,), # 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 + """AutomationSlidesExport - a model defined in OpenAPI + + Args: + request_payload (SlidesExportRequest): + + 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 + """AutomationSlidesExport - a model defined in OpenAPI + + Args: + request_payload (SlidesExportRequest): + + 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/chat_history_request.py b/gooddata-api-client/gooddata_api_client/model/chat_history_request.py index 53862ff12..9e81363a3 100644 --- a/gooddata-api-client/gooddata_api_client/model/chat_history_request.py +++ b/gooddata-api-client/gooddata_api_client/model/chat_history_request.py @@ -30,6 +30,10 @@ from gooddata_api_client.exceptions import ApiAttributeError +def lazy_import(): + from gooddata_api_client.model.saved_visualization import SavedVisualization + globals()['SavedVisualization'] = SavedVisualization + class ChatHistoryRequest(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. @@ -72,6 +76,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 @@ -86,9 +91,11 @@ def openapi_types(): openapi_types (dict): The key is attribute name and the value is attribute type. """ + lazy_import() return { 'chat_history_interaction_id': (str,), # noqa: E501 'reset': (bool,), # noqa: E501 + 'saved_visualization': (SavedVisualization,), # noqa: E501 'thread_id_suffix': (str,), # noqa: E501 'user_feedback': (str,), # noqa: E501 } @@ -101,6 +108,7 @@ def discriminator(): attribute_map = { 'chat_history_interaction_id': 'chatHistoryInteractionId', # noqa: E501 'reset': 'reset', # noqa: E501 + 'saved_visualization': 'savedVisualization', # noqa: E501 'thread_id_suffix': 'threadIdSuffix', # noqa: E501 'user_feedback': 'userFeedback', # noqa: E501 } @@ -148,6 +156,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) chat_history_interaction_id (str): Return chat history records only after this interaction ID. If empty, complete chat history is returned.. [optional] # noqa: E501 reset (bool): User feedback.. [optional] # noqa: E501 + saved_visualization (SavedVisualization): [optional] # noqa: E501 thread_id_suffix (str): Chat History thread suffix appended to ID generated by backend. Enables more chat windows.. [optional] # noqa: E501 user_feedback (str): User feedback.. [optional] # noqa: E501 """ @@ -237,6 +246,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) chat_history_interaction_id (str): Return chat history records only after this interaction ID. If empty, complete chat history is returned.. [optional] # noqa: E501 reset (bool): User feedback.. [optional] # noqa: E501 + saved_visualization (SavedVisualization): [optional] # noqa: E501 thread_id_suffix (str): Chat History thread suffix appended to ID generated by backend. Enables more chat windows.. [optional] # noqa: E501 user_feedback (str): User feedback.. [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/chat_usage_response.py b/gooddata-api-client/gooddata_api_client/model/chat_usage_response.py index 0ce9830a6..84fe2fd65 100644 --- a/gooddata-api-client/gooddata_api_client/model/chat_usage_response.py +++ b/gooddata-api-client/gooddata_api_client/model/chat_usage_response.py @@ -83,6 +83,7 @@ def openapi_types(): """ return { 'interaction_count': (int,), # noqa: E501 + 'interaction_limit': (int,), # noqa: E501 'time_window_hours': (int,), # noqa: E501 } @@ -93,6 +94,7 @@ def discriminator(): attribute_map = { 'interaction_count': 'interactionCount', # noqa: E501 + 'interaction_limit': 'interactionLimit', # noqa: E501 'time_window_hours': 'timeWindowHours', # noqa: E501 } @@ -103,11 +105,12 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, interaction_count, time_window_hours, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, interaction_count, interaction_limit, time_window_hours, *args, **kwargs): # noqa: E501 """ChatUsageResponse - a model defined in OpenAPI Args: interaction_count (int): Number of interactions in the time window + interaction_limit (int): Maximum number of interactions in the time window any user can do in the workspace time_window_hours (int): Time window in hours Keyword Args: @@ -173,6 +176,7 @@ def _from_openapi_data(cls, interaction_count, time_window_hours, *args, **kwarg self._visited_composed_classes = _visited_composed_classes + (self.__class__,) self.interaction_count = interaction_count + self.interaction_limit = interaction_limit self.time_window_hours = time_window_hours for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ @@ -194,11 +198,12 @@ def _from_openapi_data(cls, interaction_count, time_window_hours, *args, **kwarg ]) @convert_js_args_to_python_args - def __init__(self, interaction_count, time_window_hours, *args, **kwargs): # noqa: E501 + def __init__(self, interaction_count, interaction_limit, time_window_hours, *args, **kwargs): # noqa: E501 """ChatUsageResponse - a model defined in OpenAPI Args: interaction_count (int): Number of interactions in the time window + interaction_limit (int): Maximum number of interactions in the time window any user can do in the workspace time_window_hours (int): Time window in hours Keyword Args: @@ -262,6 +267,7 @@ def __init__(self, interaction_count, time_window_hours, *args, **kwargs): # no self._visited_composed_classes = _visited_composed_classes + (self.__class__,) self.interaction_count = interaction_count + self.interaction_limit = interaction_limit self.time_window_hours = time_window_hours for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ diff --git a/gooddata-api-client/gooddata_api_client/model/created_visualization.py b/gooddata-api-client/gooddata_api_client/model/created_visualization.py index c9b53102c..ca10ad91e 100644 --- a/gooddata-api-client/gooddata_api_client/model/created_visualization.py +++ b/gooddata-api-client/gooddata_api_client/model/created_visualization.py @@ -109,6 +109,7 @@ def openapi_types(): 'suggestions': ([Suggestion],), # noqa: E501 'title': (str,), # noqa: E501 'visualization_type': (str,), # noqa: E501 + 'saved_visualization_id': (str,), # noqa: E501 } @cached_property @@ -124,6 +125,7 @@ def discriminator(): 'suggestions': 'suggestions', # noqa: E501 'title': 'title', # noqa: E501 'visualization_type': 'visualizationType', # noqa: E501 + 'saved_visualization_id': 'savedVisualizationId', # noqa: E501 } read_only_vars = { @@ -176,6 +178,7 @@ def _from_openapi_data(cls, dimensionality, filters, id, metrics, suggestions, t Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + saved_visualization_id (str): Saved visualization ID.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -277,6 +280,7 @@ def __init__(self, dimensionality, filters, id, metrics, suggestions, title, vis Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + saved_visualization_id (str): Saved visualization ID.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/dashboard_attribute_filter_attribute_filter.py b/gooddata-api-client/gooddata_api_client/model/dashboard_attribute_filter_attribute_filter.py index 276245397..f369f47c5 100644 --- a/gooddata-api-client/gooddata_api_client/model/dashboard_attribute_filter_attribute_filter.py +++ b/gooddata-api-client/gooddata_api_client/model/dashboard_attribute_filter_attribute_filter.py @@ -31,17 +31,17 @@ def lazy_import(): + from gooddata_api_client.model.attribute_elements import AttributeElements from gooddata_api_client.model.attribute_filter_by_date import AttributeFilterByDate from gooddata_api_client.model.attribute_filter_parent import AttributeFilterParent - from gooddata_api_client.model.dashboard_attribute_filter_attribute_filter_all_of import DashboardAttributeFilterAttributeFilterAllOf - from gooddata_api_client.model.dashboard_filter import DashboardFilter + from gooddata_api_client.model.identifier_ref import IdentifierRef + globals()['AttributeElements'] = AttributeElements globals()['AttributeFilterByDate'] = AttributeFilterByDate globals()['AttributeFilterParent'] = AttributeFilterParent - globals()['DashboardAttributeFilterAttributeFilterAllOf'] = DashboardAttributeFilterAttributeFilterAllOf - globals()['DashboardFilter'] = DashboardFilter + globals()['IdentifierRef'] = IdentifierRef -class DashboardAttributeFilterAttributeFilter(ModelComposed): +class DashboardAttributeFilterAttributeFilter(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -98,15 +98,15 @@ def openapi_types(): """ lazy_import() return { - 'attribute_elements': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501 - 'display_form': (str,), # noqa: E501 + 'attribute_elements': (AttributeElements,), # noqa: E501 + 'display_form': (IdentifierRef,), # noqa: E501 'negative_selection': (bool,), # noqa: E501 - 'local_identifier': (str,), # noqa: E501 'filter_elements_by': ([AttributeFilterParent],), # noqa: E501 'filter_elements_by_date': ([AttributeFilterByDate],), # noqa: E501 + 'local_identifier': (str,), # noqa: E501 'selection_mode': (str,), # noqa: E501 'title': (str,), # noqa: E501 - 'validate_elements_by': ([str],), # noqa: E501 + 'validate_elements_by': ([IdentifierRef],), # noqa: E501 } @cached_property @@ -118,9 +118,9 @@ def discriminator(): 'attribute_elements': 'attributeElements', # noqa: E501 'display_form': 'displayForm', # noqa: E501 'negative_selection': 'negativeSelection', # noqa: E501 - 'local_identifier': 'localIdentifier', # noqa: E501 'filter_elements_by': 'filterElementsBy', # noqa: E501 'filter_elements_by_date': 'filterElementsByDate', # noqa: E501 + 'local_identifier': 'localIdentifier', # noqa: E501 'selection_mode': 'selectionMode', # noqa: E501 'title': 'title', # noqa: E501 'validate_elements_by': 'validateElementsBy', # noqa: E501 @@ -129,15 +129,19 @@ def discriminator(): read_only_vars = { } + _composed_schemas = {} + @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, attribute_elements, display_form, negative_selection, *args, **kwargs): # noqa: E501 """DashboardAttributeFilterAttributeFilter - a model defined in OpenAPI - Keyword Args: - attribute_elements ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): - display_form (str): + Args: + attribute_elements (AttributeElements): + display_form (IdentifierRef): negative_selection (bool): + + Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be raised if the wrong type is input. @@ -168,16 +172,16 @@ 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,) - local_identifier (str): [optional] # noqa: E501 filter_elements_by ([AttributeFilterParent]): [optional] # noqa: E501 filter_elements_by_date ([AttributeFilterByDate]): [optional] # noqa: E501 + local_identifier (str): [optional] # noqa: E501 selection_mode (str): [optional] # noqa: E501 title (str): [optional] # noqa: E501 - validate_elements_by ([str]): [optional] # noqa: E501 + validate_elements_by ([IdentifierRef]): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) - _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _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', ()) @@ -205,29 +209,17 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - constant_args = { - '_check_type': _check_type, - '_path_to_item': _path_to_item, - '_spec_property_naming': _spec_property_naming, - '_configuration': _configuration, - '_visited_composed_classes': self._visited_composed_classes, - } - composed_info = validate_get_composed_info( - constant_args, kwargs, self) - self._composed_instances = composed_info[0] - self._var_name_to_model_instances = composed_info[1] - self._additional_properties_model_instances = composed_info[2] - discarded_args = composed_info[3] - + self.attribute_elements = attribute_elements + self.display_form = display_form + self.negative_selection = negative_selection for var_name, var_value in kwargs.items(): - if var_name in discarded_args and \ + if var_name not in self.attribute_map and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self._additional_properties_model_instances: + self.additional_properties_type is None: # discard variable. continue setattr(self, var_name, var_value) - return self required_properties = set([ @@ -237,19 +229,18 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 '_path_to_item', '_configuration', '_visited_composed_classes', - '_composed_instances', - '_var_name_to_model_instances', - '_additional_properties_model_instances', ]) @convert_js_args_to_python_args - def __init__(self, *args, **kwargs): # noqa: E501 + def __init__(self, attribute_elements, display_form, negative_selection, *args, **kwargs): # noqa: E501 """DashboardAttributeFilterAttributeFilter - a model defined in OpenAPI - Keyword Args: - attribute_elements ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): - display_form (str): + Args: + attribute_elements (AttributeElements): + display_form (IdentifierRef): negative_selection (bool): + + Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be raised if the wrong type is input. @@ -280,12 +271,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,) - local_identifier (str): [optional] # noqa: E501 filter_elements_by ([AttributeFilterParent]): [optional] # noqa: E501 filter_elements_by_date ([AttributeFilterByDate]): [optional] # noqa: E501 + local_identifier (str): [optional] # noqa: E501 selection_mode (str): [optional] # noqa: E501 title (str): [optional] # noqa: E501 - validate_elements_by ([str]): [optional] # noqa: E501 + validate_elements_by ([IdentifierRef]): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -315,49 +306,17 @@ def __init__(self, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - constant_args = { - '_check_type': _check_type, - '_path_to_item': _path_to_item, - '_spec_property_naming': _spec_property_naming, - '_configuration': _configuration, - '_visited_composed_classes': self._visited_composed_classes, - } - composed_info = validate_get_composed_info( - constant_args, kwargs, self) - self._composed_instances = composed_info[0] - self._var_name_to_model_instances = composed_info[1] - self._additional_properties_model_instances = composed_info[2] - discarded_args = composed_info[3] - + self.attribute_elements = attribute_elements + self.display_form = display_form + self.negative_selection = negative_selection for var_name, var_value in kwargs.items(): - if var_name in discarded_args and \ + if var_name not in self.attribute_map and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self._additional_properties_model_instances: + 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.") - - @cached_property - def _composed_schemas(): - # we need this here to make our import statements work - # we must store _composed_schemas in here so the code is only run - # when we invoke this method. If we kept this at the class - # level we would get an error because the class level - # code would be run when this module is imported, and these composed - # classes don't exist yet because their module has not finished - # loading - lazy_import() - return { - 'anyOf': [ - ], - 'allOf': [ - DashboardAttributeFilterAttributeFilterAllOf, - DashboardFilter, - ], - 'oneOf': [ - ], - } diff --git a/gooddata-api-client/gooddata_api_client/model/dashboard_date_filter_date_filter.py b/gooddata-api-client/gooddata_api_client/model/dashboard_date_filter_date_filter.py index 23e7ec84e..534b49285 100644 --- a/gooddata-api-client/gooddata_api_client/model/dashboard_date_filter_date_filter.py +++ b/gooddata-api-client/gooddata_api_client/model/dashboard_date_filter_date_filter.py @@ -31,13 +31,13 @@ def lazy_import(): - from gooddata_api_client.model.dashboard_date_filter_date_filter_all_of import DashboardDateFilterDateFilterAllOf - from gooddata_api_client.model.dashboard_filter import DashboardFilter - globals()['DashboardDateFilterDateFilterAllOf'] = DashboardDateFilterDateFilterAllOf - globals()['DashboardFilter'] = DashboardFilter + from gooddata_api_client.model.dashboard_date_filter_date_filter_from import DashboardDateFilterDateFilterFrom + from gooddata_api_client.model.identifier_ref import IdentifierRef + globals()['DashboardDateFilterDateFilterFrom'] = DashboardDateFilterDateFilterFrom + globals()['IdentifierRef'] = IdentifierRef -class DashboardDateFilterDateFilter(ModelComposed): +class DashboardDateFilterDateFilter(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -121,11 +121,11 @@ def openapi_types(): return { 'granularity': (str,), # noqa: E501 'type': (str,), # noqa: E501 + 'attribute': (IdentifierRef,), # noqa: E501 + 'data_set': (IdentifierRef,), # noqa: E501 + '_from': (DashboardDateFilterDateFilterFrom,), # noqa: E501 'local_identifier': (str,), # noqa: E501 - 'attribute': (str,), # noqa: E501 - 'data_set': (str,), # noqa: E501 - '_from': (str,), # noqa: E501 - 'to': (str,), # noqa: E501 + 'to': (DashboardDateFilterDateFilterFrom,), # noqa: E501 } @cached_property @@ -136,24 +136,28 @@ def discriminator(): attribute_map = { 'granularity': 'granularity', # noqa: E501 'type': 'type', # noqa: E501 - 'local_identifier': 'localIdentifier', # noqa: E501 'attribute': 'attribute', # noqa: E501 'data_set': 'dataSet', # noqa: E501 '_from': 'from', # noqa: E501 + 'local_identifier': 'localIdentifier', # noqa: E501 'to': 'to', # noqa: E501 } read_only_vars = { } + _composed_schemas = {} + @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, granularity, type, *args, **kwargs): # noqa: E501 """DashboardDateFilterDateFilter - a model defined in OpenAPI - Keyword Args: + Args: granularity (str): type (str): + + Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be raised if the wrong type is input. @@ -184,15 +188,15 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + attribute (IdentifierRef): [optional] # noqa: E501 + data_set (IdentifierRef): [optional] # noqa: E501 + _from (DashboardDateFilterDateFilterFrom): [optional] # noqa: E501 local_identifier (str): [optional] # noqa: E501 - attribute (str): [optional] # noqa: E501 - data_set (str): [optional] # noqa: E501 - _from (str): [optional] # noqa: E501 - to (str): [optional] # noqa: E501 + to (DashboardDateFilterDateFilterFrom): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) - _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _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', ()) @@ -220,29 +224,16 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - constant_args = { - '_check_type': _check_type, - '_path_to_item': _path_to_item, - '_spec_property_naming': _spec_property_naming, - '_configuration': _configuration, - '_visited_composed_classes': self._visited_composed_classes, - } - composed_info = validate_get_composed_info( - constant_args, kwargs, self) - self._composed_instances = composed_info[0] - self._var_name_to_model_instances = composed_info[1] - self._additional_properties_model_instances = composed_info[2] - discarded_args = composed_info[3] - + self.granularity = granularity + self.type = type for var_name, var_value in kwargs.items(): - if var_name in discarded_args and \ + if var_name not in self.attribute_map and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self._additional_properties_model_instances: + self.additional_properties_type is None: # discard variable. continue setattr(self, var_name, var_value) - return self required_properties = set([ @@ -252,18 +243,17 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 '_path_to_item', '_configuration', '_visited_composed_classes', - '_composed_instances', - '_var_name_to_model_instances', - '_additional_properties_model_instances', ]) @convert_js_args_to_python_args - def __init__(self, *args, **kwargs): # noqa: E501 + def __init__(self, granularity, type, *args, **kwargs): # noqa: E501 """DashboardDateFilterDateFilter - a model defined in OpenAPI - Keyword Args: + Args: granularity (str): type (str): + + Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be raised if the wrong type is input. @@ -294,11 +284,11 @@ def __init__(self, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + attribute (IdentifierRef): [optional] # noqa: E501 + data_set (IdentifierRef): [optional] # noqa: E501 + _from (DashboardDateFilterDateFilterFrom): [optional] # noqa: E501 local_identifier (str): [optional] # noqa: E501 - attribute (str): [optional] # noqa: E501 - data_set (str): [optional] # noqa: E501 - _from (str): [optional] # noqa: E501 - to (str): [optional] # noqa: E501 + to (DashboardDateFilterDateFilterFrom): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -328,49 +318,16 @@ def __init__(self, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - constant_args = { - '_check_type': _check_type, - '_path_to_item': _path_to_item, - '_spec_property_naming': _spec_property_naming, - '_configuration': _configuration, - '_visited_composed_classes': self._visited_composed_classes, - } - composed_info = validate_get_composed_info( - constant_args, kwargs, self) - self._composed_instances = composed_info[0] - self._var_name_to_model_instances = composed_info[1] - self._additional_properties_model_instances = composed_info[2] - discarded_args = composed_info[3] - + self.granularity = granularity + self.type = type for var_name, var_value in kwargs.items(): - if var_name in discarded_args and \ + if var_name not in self.attribute_map and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self._additional_properties_model_instances: + 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.") - - @cached_property - def _composed_schemas(): - # we need this here to make our import statements work - # we must store _composed_schemas in here so the code is only run - # when we invoke this method. If we kept this at the class - # level we would get an error because the class level - # code would be run when this module is imported, and these composed - # classes don't exist yet because their module has not finished - # loading - lazy_import() - return { - 'anyOf': [ - ], - 'allOf': [ - DashboardDateFilterDateFilterAllOf, - DashboardFilter, - ], - 'oneOf': [ - ], - } diff --git a/gooddata-api-client/gooddata_api_client/model/dashboard_date_filter_date_filter_from.py b/gooddata-api-client/gooddata_api_client/model/dashboard_date_filter_date_filter_from.py new file mode 100644 index 000000000..06393e075 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/dashboard_date_filter_date_filter_from.py @@ -0,0 +1,260 @@ +""" + 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 DashboardDateFilterDateFilterFrom(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 { + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """DashboardDateFilterDateFilterFrom - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """DashboardDateFilterDateFilterFrom - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/dashboard_export_settings.py b/gooddata-api-client/gooddata_api_client/model/dashboard_export_settings.py new file mode 100644 index 000000000..172ee288e --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/dashboard_export_settings.py @@ -0,0 +1,268 @@ +""" + 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 DashboardExportSettings(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 { + 'export_info': (bool,), # noqa: E501 + 'merge_headers': (bool,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'export_info': 'exportInfo', # noqa: E501 + 'merge_headers': 'mergeHeaders', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """DashboardExportSettings - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + export_info (bool): If true, the export will contain the information about the exported date and dashboard filters.. [optional] if omitted the server will use the default value of False # noqa: E501 + merge_headers (bool): Merge equal headers in neighbouring cells. Used for [XLSX] format only.. [optional] if omitted the server will use the default value of False # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """DashboardExportSettings - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + export_info (bool): If true, the export will contain the information about the exported date and dashboard filters.. [optional] if omitted the server will use the default value of False # noqa: E501 + merge_headers (bool): Merge equal headers in neighbouring cells. Used for [XLSX] format only.. [optional] if omitted the server will use the default value of False # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/dashboard_filter.py b/gooddata-api-client/gooddata_api_client/model/dashboard_filter.py index 98b1c299a..27b551ddd 100644 --- a/gooddata-api-client/gooddata_api_client/model/dashboard_filter.py +++ b/gooddata-api-client/gooddata_api_client/model/dashboard_filter.py @@ -30,8 +30,18 @@ from gooddata_api_client.exceptions import ApiAttributeError - -class DashboardFilter(ModelNormal): +def lazy_import(): + from gooddata_api_client.model.dashboard_attribute_filter import DashboardAttributeFilter + from gooddata_api_client.model.dashboard_attribute_filter_attribute_filter import DashboardAttributeFilterAttributeFilter + from gooddata_api_client.model.dashboard_date_filter import DashboardDateFilter + from gooddata_api_client.model.dashboard_date_filter_date_filter import DashboardDateFilterDateFilter + globals()['DashboardAttributeFilter'] = DashboardAttributeFilter + globals()['DashboardAttributeFilterAttributeFilter'] = DashboardAttributeFilterAttributeFilter + globals()['DashboardDateFilter'] = DashboardDateFilter + globals()['DashboardDateFilterDateFilter'] = DashboardDateFilterDateFilter + + +class DashboardFilter(ModelComposed): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -67,6 +77,7 @@ def additional_properties_type(): This must be a method because a model may have properties that are of type self, this must run after the class is loaded """ + lazy_import() return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 _nullable = False @@ -81,8 +92,10 @@ def openapi_types(): openapi_types (dict): The key is attribute name and the value is attribute type. """ + lazy_import() return { - 'local_identifier': (str,), # noqa: E501 + 'attribute_filter': (DashboardAttributeFilterAttributeFilter,), # noqa: E501 + 'date_filter': (DashboardDateFilterDateFilter,), # noqa: E501 } @cached_property @@ -91,14 +104,13 @@ def discriminator(): attribute_map = { - 'local_identifier': 'localIdentifier', # noqa: E501 + 'attribute_filter': 'attributeFilter', # noqa: E501 + 'date_filter': 'dateFilter', # noqa: E501 } read_only_vars = { } - _composed_schemas = {} - @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 @@ -135,11 +147,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,) - local_identifier (str): [optional] # noqa: E501 + attribute_filter (DashboardAttributeFilterAttributeFilter): [optional] # noqa: E501 + date_filter (DashboardDateFilterDateFilter): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) - _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) _path_to_item = kwargs.pop('_path_to_item', ()) _configuration = kwargs.pop('_configuration', None) _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) @@ -167,14 +180,29 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + for var_name, var_value in kwargs.items(): - if var_name not in self.attribute_map and \ + if var_name in discarded_args and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self.additional_properties_type is None: + self._additional_properties_model_instances: # discard variable. continue setattr(self, var_name, var_value) + return self required_properties = set([ @@ -184,6 +212,9 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 '_path_to_item', '_configuration', '_visited_composed_classes', + '_composed_instances', + '_var_name_to_model_instances', + '_additional_properties_model_instances', ]) @convert_js_args_to_python_args @@ -221,7 +252,8 @@ 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,) - local_identifier (str): [optional] # noqa: E501 + attribute_filter (DashboardAttributeFilterAttributeFilter): [optional] # noqa: E501 + date_filter (DashboardDateFilterDateFilter): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -251,14 +283,49 @@ def __init__(self, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + for var_name, var_value in kwargs.items(): - if var_name not in self.attribute_map and \ + if var_name in discarded_args and \ self._configuration is not None and \ self._configuration.discard_unknown_keys and \ - self.additional_properties_type is None: + self._additional_properties_model_instances: # discard variable. continue setattr(self, var_name, var_value) if var_name in self.read_only_vars: raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " f"class with read only attributes.") + + @cached_property + def _composed_schemas(): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + lazy_import() + return { + 'anyOf': [ + ], + 'allOf': [ + ], + 'oneOf': [ + DashboardAttributeFilter, + DashboardDateFilter, + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/dashboard_tabular_export_request.py b/gooddata-api-client/gooddata_api_client/model/dashboard_tabular_export_request.py index f75e312ed..158a4b0ae 100644 --- a/gooddata-api-client/gooddata_api_client/model/dashboard_tabular_export_request.py +++ b/gooddata-api-client/gooddata_api_client/model/dashboard_tabular_export_request.py @@ -31,8 +31,10 @@ def lazy_import(): - from gooddata_api_client.model.dashboard_tabular_export_request_dashboard_filters_override_inner import DashboardTabularExportRequestDashboardFiltersOverrideInner - globals()['DashboardTabularExportRequestDashboardFiltersOverrideInner'] = DashboardTabularExportRequestDashboardFiltersOverrideInner + 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 DashboardTabularExportRequest(ModelNormal): @@ -66,6 +68,9 @@ class DashboardTabularExportRequest(ModelNormal): } validations = { + ('widget_ids',): { + 'max_items': 1, + }, } @cached_property @@ -93,7 +98,9 @@ def openapi_types(): return { 'file_name': (str,), # noqa: E501 'format': (str,), # noqa: E501 - 'dashboard_filters_override': ([DashboardTabularExportRequestDashboardFiltersOverrideInner],), # noqa: E501 + 'dashboard_filters_override': ([DashboardFilter],), # noqa: E501 + 'settings': (DashboardExportSettings,), # noqa: E501 + 'widget_ids': ([str],), # noqa: E501 } @cached_property @@ -105,6 +112,8 @@ def discriminator(): '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 = { @@ -152,7 +161,9 @@ def _from_openapi_data(cls, file_name, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - dashboard_filters_override ([DashboardTabularExportRequestDashboardFiltersOverrideInner]): List of filters that will be used instead of the default dashboard filters.. [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") @@ -245,7 +256,9 @@ def __init__(self, file_name, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - dashboard_filters_override ([DashboardTabularExportRequestDashboardFiltersOverrideInner]): List of filters that will be used instead of the default dashboard filters.. [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") diff --git a/gooddata-api-client/gooddata_api_client/model/date_value.py b/gooddata-api-client/gooddata_api_client/model/date_value.py new file mode 100644 index 000000000..beb07341b --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/date_value.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 DateValue(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'value': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'value': 'value', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, value, *args, **kwargs): # noqa: E501 + """DateValue - a model defined in OpenAPI + + Args: + value (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.value = value + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, value, *args, **kwargs): # noqa: E501 + """DateValue - a model defined in OpenAPI + + Args: + value (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.value = value + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_automation.py b/gooddata-api-client/gooddata_api_client/model/declarative_automation.py index 006840e46..a17d5e370 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_automation.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_automation.py @@ -35,7 +35,9 @@ def lazy_import(): 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 + from gooddata_api_client.model.automation_raw_export import AutomationRawExport from gooddata_api_client.model.automation_schedule import AutomationSchedule + from gooddata_api_client.model.automation_slides_export import AutomationSlidesExport from gooddata_api_client.model.automation_tabular_export import AutomationTabularExport from gooddata_api_client.model.automation_visual_export import AutomationVisualExport from gooddata_api_client.model.declarative_analytical_dashboard_identifier import DeclarativeAnalyticalDashboardIdentifier @@ -46,7 +48,9 @@ def lazy_import(): globals()['AutomationExternalRecipient'] = AutomationExternalRecipient globals()['AutomationImageExport'] = AutomationImageExport globals()['AutomationMetadata'] = AutomationMetadata + globals()['AutomationRawExport'] = AutomationRawExport globals()['AutomationSchedule'] = AutomationSchedule + globals()['AutomationSlidesExport'] = AutomationSlidesExport globals()['AutomationTabularExport'] = AutomationTabularExport globals()['AutomationVisualExport'] = AutomationVisualExport globals()['DeclarativeAnalyticalDashboardIdentifier'] = DeclarativeAnalyticalDashboardIdentifier @@ -113,8 +117,12 @@ class DeclarativeAutomation(ModelNormal): 'pattern': r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}', # noqa: E501 }, }, + ('raw_exports',): { + }, ('recipients',): { }, + ('slides_exports',): { + }, ('tabular_exports',): { }, ('tags',): { @@ -163,8 +171,10 @@ def openapi_types(): 'modified_at': (str, none_type,), # noqa: E501 'modified_by': (DeclarativeUserIdentifier,), # noqa: E501 'notification_channel': (DeclarativeNotificationChannelIdentifier,), # noqa: E501 + 'raw_exports': ([AutomationRawExport],), # noqa: E501 'recipients': ([DeclarativeUserIdentifier],), # noqa: E501 'schedule': (AutomationSchedule,), # noqa: E501 + 'slides_exports': ([AutomationSlidesExport],), # noqa: E501 'state': (str,), # noqa: E501 'tabular_exports': ([AutomationTabularExport],), # noqa: E501 'tags': ([str],), # noqa: E501 @@ -192,8 +202,10 @@ def discriminator(): 'modified_at': 'modifiedAt', # noqa: E501 'modified_by': 'modifiedBy', # noqa: E501 'notification_channel': 'notificationChannel', # noqa: E501 + 'raw_exports': 'rawExports', # noqa: E501 'recipients': 'recipients', # noqa: E501 'schedule': 'schedule', # noqa: E501 + 'slides_exports': 'slidesExports', # noqa: E501 'state': 'state', # noqa: E501 'tabular_exports': 'tabularExports', # noqa: E501 'tags': 'tags', # noqa: E501 @@ -258,8 +270,10 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 modified_at (str, none_type): Time of the last entity modification.. [optional] # noqa: E501 modified_by (DeclarativeUserIdentifier): [optional] # noqa: E501 notification_channel (DeclarativeNotificationChannelIdentifier): [optional] # noqa: E501 + raw_exports ([AutomationRawExport]): [optional] # noqa: E501 recipients ([DeclarativeUserIdentifier]): [optional] # noqa: E501 schedule (AutomationSchedule): [optional] # noqa: E501 + slides_exports ([AutomationSlidesExport]): [optional] # noqa: E501 state (str): Current state of the automation.. [optional] if omitted the server will use the default value of "ACTIVE" # noqa: E501 tabular_exports ([AutomationTabularExport]): [optional] # noqa: E501 tags ([str]): [optional] # noqa: E501 @@ -367,8 +381,10 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 modified_at (str, none_type): Time of the last entity modification.. [optional] # noqa: E501 modified_by (DeclarativeUserIdentifier): [optional] # noqa: E501 notification_channel (DeclarativeNotificationChannelIdentifier): [optional] # noqa: E501 + raw_exports ([AutomationRawExport]): [optional] # noqa: E501 recipients ([DeclarativeUserIdentifier]): [optional] # noqa: E501 schedule (AutomationSchedule): [optional] # noqa: E501 + slides_exports ([AutomationSlidesExport]): [optional] # noqa: E501 state (str): Current state of the automation.. [optional] if omitted the server will use the default value of "ACTIVE" # noqa: E501 tabular_exports ([AutomationTabularExport]): [optional] # noqa: E501 tags ([str]): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py b/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py index 15f2eb4b5..cb0011e54 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py @@ -82,6 +82,7 @@ class DeclarativeDataSource(ModelNormal): 'MYSQL': "MYSQL", 'MARIADB': "MARIADB", 'ORACLE': "ORACLE", + 'PINOT': "PINOT", 'SINGLESTORE': "SINGLESTORE", 'MOTHERDUCK': "MOTHERDUCK", 'FLEXCONNECT': "FLEXCONNECT", diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_dataset.py b/gooddata-api-client/gooddata_api_client/model/declarative_dataset.py index 259253bae..084901006 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_dataset.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_dataset.py @@ -88,6 +88,9 @@ class DeclarativeDataset(ModelNormal): ('description',): { 'max_length': 10000, }, + ('precedence',): { + 'inclusive_minimum': 0, + }, ('tags',): { }, } @@ -123,6 +126,7 @@ def openapi_types(): 'data_source_table_id': (DataSourceTableIdentifier,), # noqa: E501 'description': (str,), # noqa: E501 'facts': ([DeclarativeFact],), # noqa: E501 + 'precedence': (int,), # noqa: E501 'sql': (DeclarativeDatasetSql,), # noqa: E501 'tags': ([str],), # noqa: E501 'workspace_data_filter_columns': ([DeclarativeWorkspaceDataFilterColumn],), # noqa: E501 @@ -143,6 +147,7 @@ def discriminator(): 'data_source_table_id': 'dataSourceTableId', # noqa: E501 'description': 'description', # noqa: E501 'facts': 'facts', # noqa: E501 + 'precedence': 'precedence', # noqa: E501 'sql': 'sql', # noqa: E501 'tags': 'tags', # noqa: E501 'workspace_data_filter_columns': 'workspaceDataFilterColumns', # noqa: E501 @@ -200,6 +205,7 @@ def _from_openapi_data(cls, grain, id, references, title, *args, **kwargs): # n data_source_table_id (DataSourceTableIdentifier): [optional] # noqa: E501 description (str): A dataset description.. [optional] # noqa: E501 facts ([DeclarativeFact]): An array of facts.. [optional] # noqa: E501 + precedence (int): Precedence used in aggregate awareness.. [optional] # noqa: E501 sql (DeclarativeDatasetSql): [optional] # noqa: E501 tags ([str]): A list of tags.. [optional] # noqa: E501 workspace_data_filter_columns ([DeclarativeWorkspaceDataFilterColumn]): An array of columns which are available for match to implicit workspace data filters.. [optional] # noqa: E501 @@ -303,6 +309,7 @@ def __init__(self, grain, id, references, title, *args, **kwargs): # noqa: E501 data_source_table_id (DataSourceTableIdentifier): [optional] # noqa: E501 description (str): A dataset description.. [optional] # noqa: E501 facts ([DeclarativeFact]): An array of facts.. [optional] # noqa: E501 + precedence (int): Precedence used in aggregate awareness.. [optional] # noqa: E501 sql (DeclarativeDatasetSql): [optional] # noqa: E501 tags ([str]): A list of tags.. [optional] # noqa: E501 workspace_data_filter_columns ([DeclarativeWorkspaceDataFilterColumn]): An array of columns which are available for match to implicit workspace data filters.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_fact.py b/gooddata-api-client/gooddata_api_client/model/declarative_fact.py index 05e833f7e..2feb9f830 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_fact.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_fact.py @@ -30,6 +30,10 @@ from gooddata_api_client.exceptions import ApiAttributeError +def lazy_import(): + from gooddata_api_client.model.declarative_source_fact_reference import DeclarativeSourceFactReference + globals()['DeclarativeSourceFactReference'] = DeclarativeSourceFactReference + class DeclarativeFact(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. @@ -95,6 +99,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 @@ -109,12 +114,14 @@ def openapi_types(): openapi_types (dict): The key is attribute name and the value is attribute type. """ + lazy_import() return { 'id': (str,), # noqa: E501 'source_column': (str,), # noqa: E501 'title': (str,), # noqa: E501 'description': (str,), # noqa: E501 'source_column_data_type': (str,), # noqa: E501 + 'source_fact_reference': (DeclarativeSourceFactReference,), # noqa: E501 'tags': ([str],), # noqa: E501 } @@ -129,6 +136,7 @@ def discriminator(): 'title': 'title', # noqa: E501 'description': 'description', # noqa: E501 'source_column_data_type': 'sourceColumnDataType', # noqa: E501 + 'source_fact_reference': 'sourceFactReference', # noqa: E501 'tags': 'tags', # noqa: E501 } @@ -180,6 +188,7 @@ def _from_openapi_data(cls, id, source_column, title, *args, **kwargs): # noqa: _visited_composed_classes = (Animal,) description (str): Fact description.. [optional] # noqa: E501 source_column_data_type (str): A type of the source column. [optional] # noqa: E501 + source_fact_reference (DeclarativeSourceFactReference): [optional] # noqa: E501 tags ([str]): A list of tags.. [optional] # noqa: E501 """ @@ -276,6 +285,7 @@ def __init__(self, id, source_column, title, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) description (str): Fact description.. [optional] # noqa: E501 source_column_data_type (str): A type of the source column. [optional] # noqa: E501 + source_fact_reference (DeclarativeSourceFactReference): [optional] # noqa: E501 tags ([str]): A list of tags.. [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 577e88eb2..19ad5409e 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_identity_provider.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_identity_provider.py @@ -72,9 +72,17 @@ class DeclarativeIdentityProvider(ModelNormal): ('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, }, @@ -106,7 +114,11 @@ def openapi_types(): 'custom_claim_mapping': ({str: (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 } @@ -121,7 +133,11 @@ def discriminator(): 'custom_claim_mapping': 'customClaimMapping', # 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 } @@ -173,7 +189,11 @@ def _from_openapi_data(cls, id, identifiers, *args, **kwargs): # noqa: E501 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 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 """ @@ -269,7 +289,11 @@ def __init__(self, id, identifiers, *args, **kwargs): # noqa: E501 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 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 """ diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_identity_provider_identifier.py b/gooddata-api-client/gooddata_api_client/model/declarative_identity_provider_identifier.py new file mode 100644 index 000000000..65a3e31ac --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/declarative_identity_provider_identifier.py @@ -0,0 +1,286 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class DeclarativeIdentityProviderIdentifier(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('type',): { + 'IDENTITYPROVIDER': "identityProvider", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + """DeclarativeIdentityProviderIdentifier - a model defined in OpenAPI + + Args: + id (str): Identifier of the identity provider. + + Keyword Args: + type (str): A type.. defaults to "identityProvider", must be one of ["identityProvider", ] # noqa: E501 + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + type = kwargs.get('type', "identityProvider") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.id = id + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, id, *args, **kwargs): # noqa: E501 + """DeclarativeIdentityProviderIdentifier - a model defined in OpenAPI + + Args: + id (str): Identifier of the identity provider. + + Keyword Args: + type (str): A type.. defaults to "identityProvider", must be one of ["identityProvider", ] # noqa: E501 + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + type = kwargs.get('type', "identityProvider") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.id = id + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_notification_channel.py b/gooddata-api-client/gooddata_api_client/model/declarative_notification_channel.py index 11e61d002..bed7f24f4 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_notification_channel.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_notification_channel.py @@ -89,12 +89,18 @@ class DeclarativeNotificationChannel(ModelNormal): 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 }, }, + ('custom_dashboard_url',): { + 'max_length': 255, + }, ('description',): { 'max_length': 10000, }, ('name',): { 'max_length': 255, }, + ('notification_source',): { + 'max_length': 10000, + }, } @cached_property @@ -129,6 +135,7 @@ def openapi_types(): 'destination_type': (str, none_type,), # noqa: E501 'in_platform_notification': (str,), # noqa: E501 'name': (str,), # noqa: E501 + 'notification_source': (str,), # noqa: E501 } @cached_property @@ -146,6 +153,7 @@ def discriminator(): 'destination_type': 'destinationType', # noqa: E501 'in_platform_notification': 'inPlatformNotification', # noqa: E501 'name': 'name', # noqa: E501 + 'notification_source': 'notificationSource', # noqa: E501 } read_only_vars = { @@ -194,13 +202,14 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] if omitted the server will use the default value of "INTERNAL" # noqa: E501 - custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are: {workspaceId} {dashboardId} {automationId} {asOfDate} . [optional] # noqa: E501 dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] if omitted the server will use the default value of "INTERNAL_ONLY" # noqa: E501 description (str): Description of a notification channel.. [optional] # noqa: E501 destination (DeclarativeNotificationChannelDestination): [optional] # noqa: E501 destination_type (str, none_type): [optional] # noqa: E501 in_platform_notification (str): In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications . [optional] if omitted the server will use the default value of "DISABLED" # noqa: E501 name (str): Name of a notification channel.. [optional] # noqa: E501 + notification_source (str): Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are: {{workspaceId}} {{workspaceName}} {{workspaceDescription}} {{dashboardId}} {{dashboardName}} {{dashboardDescription}} . [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -291,13 +300,14 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] if omitted the server will use the default value of "INTERNAL" # noqa: E501 - custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are: {workspaceId} {dashboardId} {automationId} {asOfDate} . [optional] # noqa: E501 dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] if omitted the server will use the default value of "INTERNAL_ONLY" # noqa: E501 description (str): Description of a notification channel.. [optional] # noqa: E501 destination (DeclarativeNotificationChannelDestination): [optional] # noqa: E501 destination_type (str, none_type): [optional] # noqa: E501 in_platform_notification (str): In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications . [optional] if omitted the server will use the default value of "DISABLED" # noqa: E501 name (str): Name of a notification channel.. [optional] # noqa: E501 + notification_source (str): Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are: {{workspaceId}} {{workspaceName}} {{workspaceDescription}} {{dashboardId}} {{dashboardName}} {{dashboardDescription}} . [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py b/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py index cb254c21f..75f68b083 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py @@ -33,11 +33,13 @@ def lazy_import(): from gooddata_api_client.model.declarative_color_palette import DeclarativeColorPalette from gooddata_api_client.model.declarative_csp_directive import DeclarativeCspDirective + from gooddata_api_client.model.declarative_identity_provider_identifier import DeclarativeIdentityProviderIdentifier from gooddata_api_client.model.declarative_organization_permission import DeclarativeOrganizationPermission from gooddata_api_client.model.declarative_setting import DeclarativeSetting from gooddata_api_client.model.declarative_theme import DeclarativeTheme globals()['DeclarativeColorPalette'] = DeclarativeColorPalette globals()['DeclarativeCspDirective'] = DeclarativeCspDirective + globals()['DeclarativeIdentityProviderIdentifier'] = DeclarativeIdentityProviderIdentifier globals()['DeclarativeOrganizationPermission'] = DeclarativeOrganizationPermission globals()['DeclarativeSetting'] = DeclarativeSetting globals()['DeclarativeTheme'] = DeclarativeTheme @@ -138,6 +140,7 @@ def openapi_types(): 'csp_directives': ([DeclarativeCspDirective],), # noqa: E501 'early_access': (str,), # noqa: E501 'early_access_values': ([str],), # noqa: E501 + 'identity_provider': (DeclarativeIdentityProviderIdentifier,), # noqa: E501 'oauth_client_id': (str,), # noqa: E501 'oauth_client_secret': (str,), # noqa: E501 'oauth_custom_auth_attributes': ({str: (str,)},), # noqa: E501 @@ -164,6 +167,7 @@ def discriminator(): 'csp_directives': 'cspDirectives', # noqa: E501 'early_access': 'earlyAccess', # noqa: E501 'early_access_values': 'earlyAccessValues', # noqa: E501 + 'identity_provider': 'identityProvider', # noqa: E501 'oauth_client_id': 'oauthClientId', # noqa: E501 'oauth_client_secret': 'oauthClientSecret', # noqa: E501 'oauth_custom_auth_attributes': 'oauthCustomAuthAttributes', # noqa: E501 @@ -227,6 +231,7 @@ def _from_openapi_data(cls, hostname, id, name, permissions, *args, **kwargs): csp_directives ([DeclarativeCspDirective]): A list of CSP directives.. [optional] # noqa: E501 early_access (str): Early access defined on level Organization. [optional] # noqa: E501 early_access_values ([str]): Early access defined on level Organization. [optional] # noqa: E501 + identity_provider (DeclarativeIdentityProviderIdentifier): [optional] # noqa: E501 oauth_client_id (str): Identifier of the authentication provider. [optional] # noqa: E501 oauth_client_secret (str): Communication secret of the authentication provider (never returned back).. [optional] # noqa: E501 oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 @@ -336,6 +341,7 @@ def __init__(self, hostname, id, name, permissions, *args, **kwargs): # noqa: E csp_directives ([DeclarativeCspDirective]): A list of CSP directives.. [optional] # noqa: E501 early_access (str): Early access defined on level Organization. [optional] # noqa: E501 early_access_values ([str]): Early access defined on level Organization. [optional] # noqa: E501 + identity_provider (DeclarativeIdentityProviderIdentifier): [optional] # noqa: E501 oauth_client_id (str): Identifier of the authentication provider. [optional] # noqa: E501 oauth_client_secret (str): Communication secret of the authentication provider (never returned back).. [optional] # noqa: E501 oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_setting.py b/gooddata-api-client/gooddata_api_client/model/declarative_setting.py index 58f8ed1b3..ba40474b5 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_setting.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_setting.py @@ -80,9 +80,12 @@ class DeclarativeSetting(ModelNormal): 'SEPARATORS': "SEPARATORS", 'DATE_FILTER_CONFIG': "DATE_FILTER_CONFIG", 'JIT_PROVISIONING': "JIT_PROVISIONING", + 'JWT_JIT_PROVISIONING': "JWT_JIT_PROVISIONING", 'DASHBOARD_FILTERS_APPLY_MODE': "DASHBOARD_FILTERS_APPLY_MODE", 'ENABLE_SLIDES_EXPORT': "ENABLE_SLIDES_EXPORT", 'AI_RATE_LIMIT': "AI_RATE_LIMIT", + 'ATTACHMENT_SIZE_LIMIT': "ATTACHMENT_SIZE_LIMIT", + 'ATTACHMENT_LINK_TTL': "ATTACHMENT_LINK_TTL", }, } 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 new file mode 100644 index 000000000..b8cbb18d1 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/declarative_source_fact_reference.py @@ -0,0 +1,287 @@ +""" + 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.fact_identifier import FactIdentifier + globals()['FactIdentifier'] = FactIdentifier + + +class DeclarativeSourceFactReference(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 = { + ('operation',): { + 'SUM': "SUM", + 'MIN': "MIN", + 'MAX': "MAX", + }, + } + + 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 { + 'id': (FactIdentifier,), # noqa: E501 + 'operation': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'operation': 'operation', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, operation, *args, **kwargs): # noqa: E501 + """DeclarativeSourceFactReference - a model defined in OpenAPI + + Args: + id (FactIdentifier): + operation (str): Aggregation operation. + + 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.id = id + self.operation = operation + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, id, operation, *args, **kwargs): # noqa: E501 + """DeclarativeSourceFactReference - a model defined in OpenAPI + + Args: + id (FactIdentifier): + operation (str): Aggregation operation. + + 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.id = id + self.operation = operation + 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/export_result.py b/gooddata-api-client/gooddata_api_client/model/export_result.py index c732f41af..288d51ca3 100644 --- a/gooddata-api-client/gooddata_api_client/model/export_result.py +++ b/gooddata-api-client/gooddata_api_client/model/export_result.py @@ -93,6 +93,7 @@ def openapi_types(): 'status': (str,), # noqa: E501 'error_message': (str,), # noqa: E501 'expires_at': (datetime,), # noqa: E501 + 'file_size': (int,), # noqa: E501 'file_uri': (str,), # noqa: E501 'trace_id': (str,), # noqa: E501 'triggered_at': (datetime,), # noqa: E501 @@ -109,6 +110,7 @@ def discriminator(): 'status': 'status', # noqa: E501 'error_message': 'errorMessage', # noqa: E501 'expires_at': 'expiresAt', # noqa: E501 + 'file_size': 'fileSize', # noqa: E501 'file_uri': 'fileUri', # noqa: E501 'trace_id': 'traceId', # noqa: E501 'triggered_at': 'triggeredAt', # noqa: E501 @@ -162,6 +164,7 @@ def _from_openapi_data(cls, export_id, file_name, status, *args, **kwargs): # n _visited_composed_classes = (Animal,) error_message (str): [optional] # noqa: E501 expires_at (datetime): [optional] # noqa: E501 + file_size (int): [optional] # noqa: E501 file_uri (str): [optional] # noqa: E501 trace_id (str): [optional] # noqa: E501 triggered_at (datetime): [optional] # noqa: E501 @@ -260,6 +263,7 @@ def __init__(self, export_id, file_name, status, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) error_message (str): [optional] # noqa: E501 expires_at (datetime): [optional] # noqa: E501 + file_size (int): [optional] # noqa: E501 file_uri (str): [optional] # noqa: E501 trace_id (str): [optional] # noqa: E501 triggered_at (datetime): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/fact_identifier.py b/gooddata-api-client/gooddata_api_client/model/fact_identifier.py new file mode 100644 index 000000000..a8844d74a --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/fact_identifier.py @@ -0,0 +1,286 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class FactIdentifier(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('type',): { + 'FACT': "fact", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + """FactIdentifier - a model defined in OpenAPI + + Args: + id (str): Fact ID. + + Keyword Args: + type (str): A type of the fact.. defaults to "fact", must be one of ["fact", ] # noqa: E501 + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + type = kwargs.get('type', "fact") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.id = id + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, id, *args, **kwargs): # noqa: E501 + """FactIdentifier - a model defined in OpenAPI + + Args: + id (str): Fact ID. + + Keyword Args: + type (str): A type of the fact.. defaults to "fact", must be one of ["fact", ] # noqa: E501 + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + type = kwargs.get('type', "fact") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.id = id + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/dashboard_attribute_filter_attribute_filter_all_of.py b/gooddata-api-client/gooddata_api_client/model/identifier_ref.py similarity index 79% rename from gooddata-api-client/gooddata_api_client/model/dashboard_attribute_filter_attribute_filter_all_of.py rename to gooddata-api-client/gooddata_api_client/model/identifier_ref.py index 779239857..260650773 100644 --- a/gooddata-api-client/gooddata_api_client/model/dashboard_attribute_filter_attribute_filter_all_of.py +++ b/gooddata-api-client/gooddata_api_client/model/identifier_ref.py @@ -31,13 +31,11 @@ def lazy_import(): - from gooddata_api_client.model.attribute_filter_by_date import AttributeFilterByDate - from gooddata_api_client.model.attribute_filter_parent import AttributeFilterParent - globals()['AttributeFilterByDate'] = AttributeFilterByDate - globals()['AttributeFilterParent'] = AttributeFilterParent + from gooddata_api_client.model.identifier_ref_identifier import IdentifierRefIdentifier + globals()['IdentifierRefIdentifier'] = IdentifierRefIdentifier -class DashboardAttributeFilterAttributeFilterAllOf(ModelNormal): +class IdentifierRef(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -62,10 +60,6 @@ class DashboardAttributeFilterAttributeFilterAllOf(ModelNormal): """ allowed_values = { - ('selection_mode',): { - 'SINGLE': "single", - 'MULTI': "multi", - }, } validations = { @@ -94,14 +88,7 @@ def openapi_types(): """ lazy_import() return { - 'attribute_elements': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501 - 'display_form': (str,), # noqa: E501 - 'filter_elements_by': ([AttributeFilterParent],), # noqa: E501 - 'filter_elements_by_date': ([AttributeFilterByDate],), # noqa: E501 - 'negative_selection': (bool,), # noqa: E501 - 'selection_mode': (str,), # noqa: E501 - 'title': (str,), # noqa: E501 - 'validate_elements_by': ([str],), # noqa: E501 + 'identifier': (IdentifierRefIdentifier,), # noqa: E501 } @cached_property @@ -110,14 +97,7 @@ def discriminator(): attribute_map = { - 'attribute_elements': 'attributeElements', # noqa: E501 - 'display_form': 'displayForm', # noqa: E501 - 'filter_elements_by': 'filterElementsBy', # noqa: E501 - 'filter_elements_by_date': 'filterElementsByDate', # noqa: E501 - 'negative_selection': 'negativeSelection', # noqa: E501 - 'selection_mode': 'selectionMode', # noqa: E501 - 'title': 'title', # noqa: E501 - 'validate_elements_by': 'validateElementsBy', # noqa: E501 + 'identifier': 'identifier', # noqa: E501 } read_only_vars = { @@ -128,7 +108,7 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 - """DashboardAttributeFilterAttributeFilterAllOf - a model defined in OpenAPI + """IdentifierRef - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -161,14 +141,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,) - attribute_elements ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501 - display_form (str): [optional] # noqa: E501 - filter_elements_by ([AttributeFilterParent]): [optional] # noqa: E501 - filter_elements_by_date ([AttributeFilterByDate]): [optional] # noqa: E501 - negative_selection (bool): [optional] # noqa: E501 - selection_mode (str): [optional] # noqa: E501 - title (str): [optional] # noqa: E501 - validate_elements_by ([str]): [optional] # noqa: E501 + identifier (IdentifierRefIdentifier): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -221,7 +194,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 @convert_js_args_to_python_args def __init__(self, *args, **kwargs): # noqa: E501 - """DashboardAttributeFilterAttributeFilterAllOf - a model defined in OpenAPI + """IdentifierRef - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -254,14 +227,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,) - attribute_elements ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501 - display_form (str): [optional] # noqa: E501 - filter_elements_by ([AttributeFilterParent]): [optional] # noqa: E501 - filter_elements_by_date ([AttributeFilterByDate]): [optional] # noqa: E501 - negative_selection (bool): [optional] # noqa: E501 - selection_mode (str): [optional] # noqa: E501 - title (str): [optional] # noqa: E501 - validate_elements_by ([str]): [optional] # noqa: E501 + identifier (IdentifierRefIdentifier): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/identifier_ref_identifier.py b/gooddata-api-client/gooddata_api_client/model/identifier_ref_identifier.py new file mode 100644 index 000000000..8f8f744d0 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/identifier_ref_identifier.py @@ -0,0 +1,297 @@ +""" + 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 IdentifierRefIdentifier(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('type',): { + 'ANALYTICALDASHBOARD': "analyticalDashboard", + 'ATTRIBUTE': "attribute", + 'ATTRIBUTEHIERARCHY': "attributeHierarchy", + 'DASHBOARDPLUGIN': "dashboardPlugin", + 'DATASET': "dataset", + 'FACT': "fact", + 'LABEL': "label", + 'METRIC': "metric", + 'USERDATAFILTER': "userDataFilter", + 'EXPORTDEFINITION': "exportDefinition", + 'AUTOMATION': "automation", + 'PROMPT': "prompt", + 'VISUALIZATIONOBJECT': "visualizationObject", + 'FILTERCONTEXT': "filterContext", + 'WORKSPACESETTINGS': "workspaceSettings", + 'CUSTOMAPPLICATIONSETTING': "customApplicationSetting", + 'WORKSPACEDATAFILTER': "workspaceDataFilter", + 'WORKSPACEDATAFILTERSETTING': "workspaceDataFilterSetting", + 'FILTERVIEW': "filterView", + }, + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 + """IdentifierRefIdentifier - a model defined in OpenAPI + + Args: + id (str): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.id = id + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, id, type, *args, **kwargs): # noqa: E501 + """IdentifierRefIdentifier - a model defined in OpenAPI + + Args: + id (str): + type (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.id = id + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/image_export_request.py b/gooddata-api-client/gooddata_api_client/model/image_export_request.py index d37c4a46f..31b482ebd 100644 --- a/gooddata-api-client/gooddata_api_client/model/image_export_request.py +++ b/gooddata-api-client/gooddata_api_client/model/image_export_request.py @@ -68,6 +68,7 @@ class ImageExportRequest(ModelNormal): validations = { ('widget_ids',): { 'max_items': 1, + 'min_items': 1, }, } @@ -97,8 +98,8 @@ def openapi_types(): 'dashboard_id': (str,), # noqa: E501 'file_name': (str,), # noqa: E501 'format': (str,), # noqa: E501 - 'metadata': (JsonNode,), # noqa: E501 'widget_ids': ([str],), # noqa: E501 + 'metadata': (JsonNode,), # noqa: E501 } @cached_property @@ -110,8 +111,8 @@ def discriminator(): 'dashboard_id': 'dashboardId', # noqa: E501 'file_name': 'fileName', # noqa: E501 'format': 'format', # noqa: E501 - 'metadata': 'metadata', # noqa: E501 'widget_ids': 'widgetIds', # noqa: E501 + 'metadata': 'metadata', # noqa: E501 } read_only_vars = { @@ -121,12 +122,13 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, dashboard_id, file_name, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, dashboard_id, file_name, widget_ids, *args, **kwargs): # noqa: E501 """ImageExportRequest - a model defined in OpenAPI Args: dashboard_id (str): Dashboard identifier file_name (str): File name to be used for retrieving the image document. + widget_ids ([str]): List of widget identifiers to be exported. Note that only one widget is currently supported. Keyword Args: format (str): Requested resulting file type.. defaults to "PNG", must be one of ["PNG", ] # noqa: E501 @@ -161,7 +163,6 @@ def _from_openapi_data(cls, dashboard_id, file_name, *args, **kwargs): # noqa: through its discriminator because we passed in _visited_composed_classes = (Animal,) metadata (JsonNode): [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', "PNG") @@ -197,6 +198,7 @@ def _from_openapi_data(cls, dashboard_id, file_name, *args, **kwargs): # noqa: self.dashboard_id = dashboard_id self.file_name = file_name self.format = format + self.widget_ids = widget_ids for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -217,12 +219,13 @@ def _from_openapi_data(cls, dashboard_id, file_name, *args, **kwargs): # noqa: ]) @convert_js_args_to_python_args - def __init__(self, dashboard_id, file_name, *args, **kwargs): # noqa: E501 + def __init__(self, dashboard_id, file_name, widget_ids, *args, **kwargs): # noqa: E501 """ImageExportRequest - a model defined in OpenAPI Args: dashboard_id (str): Dashboard identifier file_name (str): File name to be used for retrieving the image document. + widget_ids ([str]): List of widget identifiers to be exported. Note that only one widget is currently supported. Keyword Args: format (str): Requested resulting file type.. defaults to "PNG", must be one of ["PNG", ] # noqa: E501 @@ -257,7 +260,6 @@ def __init__(self, dashboard_id, file_name, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) metadata (JsonNode): [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', "PNG") @@ -291,6 +293,7 @@ def __init__(self, dashboard_id, file_name, *args, **kwargs): # noqa: E501 self.dashboard_id = dashboard_id self.file_name = file_name self.format = format + self.widget_ids = widget_ids 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 380376b3f..82f80d14f 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 @@ -35,14 +35,18 @@ def lazy_import(): 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 + from gooddata_api_client.model.json_api_automation_in_attributes_raw_exports_inner import JsonApiAutomationInAttributesRawExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_schedule import JsonApiAutomationInAttributesSchedule + from gooddata_api_client.model.json_api_automation_in_attributes_slides_exports_inner import JsonApiAutomationInAttributesSlidesExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_tabular_exports_inner import JsonApiAutomationInAttributesTabularExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_visual_exports_inner import JsonApiAutomationInAttributesVisualExportsInner globals()['JsonApiAutomationInAttributesAlert'] = JsonApiAutomationInAttributesAlert globals()['JsonApiAutomationInAttributesExternalRecipientsInner'] = JsonApiAutomationInAttributesExternalRecipientsInner globals()['JsonApiAutomationInAttributesImageExportsInner'] = JsonApiAutomationInAttributesImageExportsInner globals()['JsonApiAutomationInAttributesMetadata'] = JsonApiAutomationInAttributesMetadata + globals()['JsonApiAutomationInAttributesRawExportsInner'] = JsonApiAutomationInAttributesRawExportsInner globals()['JsonApiAutomationInAttributesSchedule'] = JsonApiAutomationInAttributesSchedule + globals()['JsonApiAutomationInAttributesSlidesExportsInner'] = JsonApiAutomationInAttributesSlidesExportsInner globals()['JsonApiAutomationInAttributesTabularExportsInner'] = JsonApiAutomationInAttributesTabularExportsInner globals()['JsonApiAutomationInAttributesVisualExportsInner'] = JsonApiAutomationInAttributesVisualExportsInner @@ -120,7 +124,9 @@ def openapi_types(): 'external_recipients': ([JsonApiAutomationInAttributesExternalRecipientsInner],), # noqa: E501 'image_exports': ([JsonApiAutomationInAttributesImageExportsInner],), # noqa: E501 'metadata': (JsonApiAutomationInAttributesMetadata,), # noqa: E501 + 'raw_exports': ([JsonApiAutomationInAttributesRawExportsInner],), # noqa: E501 'schedule': (JsonApiAutomationInAttributesSchedule,), # noqa: E501 + 'slides_exports': ([JsonApiAutomationInAttributesSlidesExportsInner],), # noqa: E501 'state': (str,), # noqa: E501 'tabular_exports': ([JsonApiAutomationInAttributesTabularExportsInner],), # noqa: E501 'tags': ([str],), # noqa: E501 @@ -141,7 +147,9 @@ def discriminator(): 'external_recipients': 'externalRecipients', # noqa: E501 'image_exports': 'imageExports', # noqa: E501 'metadata': 'metadata', # noqa: E501 + 'raw_exports': 'rawExports', # noqa: E501 'schedule': 'schedule', # noqa: E501 + 'slides_exports': 'slidesExports', # noqa: E501 'state': 'state', # noqa: E501 'tabular_exports': 'tabularExports', # noqa: E501 'tags': 'tags', # noqa: E501 @@ -197,7 +205,9 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 external_recipients ([JsonApiAutomationInAttributesExternalRecipientsInner]): External recipients of the automation action results.. [optional] # noqa: E501 image_exports ([JsonApiAutomationInAttributesImageExportsInner]): [optional] # noqa: E501 metadata (JsonApiAutomationInAttributesMetadata): [optional] # noqa: E501 + raw_exports ([JsonApiAutomationInAttributesRawExportsInner]): [optional] # noqa: E501 schedule (JsonApiAutomationInAttributesSchedule): [optional] # noqa: E501 + slides_exports ([JsonApiAutomationInAttributesSlidesExportsInner]): [optional] # noqa: E501 state (str): Current state of the automation.. [optional] # noqa: E501 tabular_exports ([JsonApiAutomationInAttributesTabularExportsInner]): [optional] # noqa: E501 tags ([str]): [optional] # noqa: E501 @@ -295,7 +305,9 @@ def __init__(self, *args, **kwargs): # noqa: E501 external_recipients ([JsonApiAutomationInAttributesExternalRecipientsInner]): External recipients of the automation action results.. [optional] # noqa: E501 image_exports ([JsonApiAutomationInAttributesImageExportsInner]): [optional] # noqa: E501 metadata (JsonApiAutomationInAttributesMetadata): [optional] # noqa: E501 + raw_exports ([JsonApiAutomationInAttributesRawExportsInner]): [optional] # noqa: E501 schedule (JsonApiAutomationInAttributesSchedule): [optional] # noqa: E501 + slides_exports ([JsonApiAutomationInAttributesSlidesExportsInner]): [optional] # noqa: E501 state (str): Current state of the automation.. [optional] # noqa: E501 tabular_exports ([JsonApiAutomationInAttributesTabularExportsInner]): [optional] # noqa: E501 tags ([str]): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_raw_exports_inner.py b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_raw_exports_inner.py new file mode 100644 index 000000000..6790eaf4d --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_raw_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.raw_export_request import RawExportRequest + globals()['RawExportRequest'] = RawExportRequest + + +class JsonApiAutomationInAttributesRawExportsInner(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': (RawExportRequest,), # 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 + """JsonApiAutomationInAttributesRawExportsInner - a model defined in OpenAPI + + Args: + request_payload (RawExportRequest): + + 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 + """JsonApiAutomationInAttributesRawExportsInner - a model defined in OpenAPI + + Args: + request_payload (RawExportRequest): + + 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_in_attributes_slides_exports_inner.py b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_slides_exports_inner.py new file mode 100644 index 000000000..62c074697 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_automation_in_attributes_slides_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.slides_export_request import SlidesExportRequest + globals()['SlidesExportRequest'] = SlidesExportRequest + + +class JsonApiAutomationInAttributesSlidesExportsInner(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': (SlidesExportRequest,), # 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 + """JsonApiAutomationInAttributesSlidesExportsInner - a model defined in OpenAPI + + Args: + request_payload (SlidesExportRequest): + + 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 + """JsonApiAutomationInAttributesSlidesExportsInner - a model defined in OpenAPI + + Args: + request_payload (SlidesExportRequest): + + 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 b03e8475d..cc240737b 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 @@ -35,14 +35,18 @@ def lazy_import(): 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 + from gooddata_api_client.model.json_api_automation_in_attributes_raw_exports_inner import JsonApiAutomationInAttributesRawExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_schedule import JsonApiAutomationInAttributesSchedule + from gooddata_api_client.model.json_api_automation_in_attributes_slides_exports_inner import JsonApiAutomationInAttributesSlidesExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_tabular_exports_inner import JsonApiAutomationInAttributesTabularExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_visual_exports_inner import JsonApiAutomationInAttributesVisualExportsInner globals()['JsonApiAutomationInAttributesAlert'] = JsonApiAutomationInAttributesAlert globals()['JsonApiAutomationInAttributesExternalRecipientsInner'] = JsonApiAutomationInAttributesExternalRecipientsInner globals()['JsonApiAutomationInAttributesImageExportsInner'] = JsonApiAutomationInAttributesImageExportsInner globals()['JsonApiAutomationInAttributesMetadata'] = JsonApiAutomationInAttributesMetadata + globals()['JsonApiAutomationInAttributesRawExportsInner'] = JsonApiAutomationInAttributesRawExportsInner globals()['JsonApiAutomationInAttributesSchedule'] = JsonApiAutomationInAttributesSchedule + globals()['JsonApiAutomationInAttributesSlidesExportsInner'] = JsonApiAutomationInAttributesSlidesExportsInner globals()['JsonApiAutomationInAttributesTabularExportsInner'] = JsonApiAutomationInAttributesTabularExportsInner globals()['JsonApiAutomationInAttributesVisualExportsInner'] = JsonApiAutomationInAttributesVisualExportsInner @@ -122,7 +126,9 @@ def openapi_types(): 'image_exports': ([JsonApiAutomationInAttributesImageExportsInner],), # noqa: E501 'metadata': (JsonApiAutomationInAttributesMetadata,), # noqa: E501 'modified_at': (datetime,), # noqa: E501 + 'raw_exports': ([JsonApiAutomationInAttributesRawExportsInner],), # noqa: E501 'schedule': (JsonApiAutomationInAttributesSchedule,), # noqa: E501 + 'slides_exports': ([JsonApiAutomationInAttributesSlidesExportsInner],), # noqa: E501 'state': (str,), # noqa: E501 'tabular_exports': ([JsonApiAutomationInAttributesTabularExportsInner],), # noqa: E501 'tags': ([str],), # noqa: E501 @@ -145,7 +151,9 @@ def discriminator(): 'image_exports': 'imageExports', # noqa: E501 'metadata': 'metadata', # noqa: E501 'modified_at': 'modifiedAt', # noqa: E501 + 'raw_exports': 'rawExports', # noqa: E501 'schedule': 'schedule', # noqa: E501 + 'slides_exports': 'slidesExports', # noqa: E501 'state': 'state', # noqa: E501 'tabular_exports': 'tabularExports', # noqa: E501 'tags': 'tags', # noqa: E501 @@ -203,7 +211,9 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 image_exports ([JsonApiAutomationInAttributesImageExportsInner]): [optional] # noqa: E501 metadata (JsonApiAutomationInAttributesMetadata): [optional] # noqa: E501 modified_at (datetime): [optional] # noqa: E501 + raw_exports ([JsonApiAutomationInAttributesRawExportsInner]): [optional] # noqa: E501 schedule (JsonApiAutomationInAttributesSchedule): [optional] # noqa: E501 + slides_exports ([JsonApiAutomationInAttributesSlidesExportsInner]): [optional] # noqa: E501 state (str): Current state of the automation.. [optional] # noqa: E501 tabular_exports ([JsonApiAutomationInAttributesTabularExportsInner]): [optional] # noqa: E501 tags ([str]): [optional] # noqa: E501 @@ -303,7 +313,9 @@ def __init__(self, *args, **kwargs): # noqa: E501 image_exports ([JsonApiAutomationInAttributesImageExportsInner]): [optional] # noqa: E501 metadata (JsonApiAutomationInAttributesMetadata): [optional] # noqa: E501 modified_at (datetime): [optional] # noqa: E501 + raw_exports ([JsonApiAutomationInAttributesRawExportsInner]): [optional] # noqa: E501 schedule (JsonApiAutomationInAttributesSchedule): [optional] # noqa: E501 + slides_exports ([JsonApiAutomationInAttributesSlidesExportsInner]): [optional] # noqa: E501 state (str): Current state of the automation.. [optional] # noqa: E501 tabular_exports ([JsonApiAutomationInAttributesTabularExportsInner]): [optional] # noqa: E501 tags ([str]): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py index d7c049dd1..a8fce71fe 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py @@ -76,6 +76,7 @@ class JsonApiDataSourceIdentifierOutAttributes(ModelNormal): 'MYSQL': "MYSQL", 'MARIADB': "MARIADB", 'ORACLE': "ORACLE", + 'PINOT': "PINOT", 'SINGLESTORE': "SINGLESTORE", 'MOTHERDUCK': "MOTHERDUCK", 'FLEXCONNECT': "FLEXCONNECT", diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py index 794579594..a440b0a6d 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py @@ -80,6 +80,7 @@ class JsonApiDataSourceInAttributes(ModelNormal): 'MYSQL': "MYSQL", 'MARIADB': "MARIADB", 'ORACLE': "ORACLE", + 'PINOT': "PINOT", 'SINGLESTORE': "SINGLESTORE", 'MOTHERDUCK': "MOTHERDUCK", 'FLEXCONNECT': "FLEXCONNECT", diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py index 8b2a1b05f..3e984a111 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py @@ -80,6 +80,7 @@ class JsonApiDataSourceOutAttributes(ModelNormal): 'MYSQL': "MYSQL", 'MARIADB': "MARIADB", 'ORACLE': "ORACLE", + 'PINOT': "PINOT", 'SINGLESTORE': "SINGLESTORE", 'MOTHERDUCK': "MOTHERDUCK", 'FLEXCONNECT': "FLEXCONNECT", diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py index 188c1061a..b0fd3ea0b 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py @@ -85,6 +85,7 @@ class JsonApiDataSourcePatchAttributes(ModelNormal): 'MYSQL': "MYSQL", 'MARIADB': "MARIADB", 'ORACLE': "ORACLE", + 'PINOT': "PINOT", 'SINGLESTORE': "SINGLESTORE", 'MOTHERDUCK': "MOTHERDUCK", 'FLEXCONNECT': "FLEXCONNECT", diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_attributes.py index 741c4ad81..acfbbf852 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_attributes.py @@ -115,6 +115,7 @@ def openapi_types(): 'data_source_table_path': ([str],), # noqa: E501 'description': (str,), # noqa: E501 'grain': ([JsonApiDatasetOutAttributesGrainInner],), # noqa: E501 + 'precedence': (int,), # noqa: E501 'reference_properties': ([JsonApiDatasetOutAttributesReferencePropertiesInner],), # noqa: E501 'sql': (JsonApiDatasetOutAttributesSql,), # noqa: E501 'tags': ([str],), # noqa: E501 @@ -135,6 +136,7 @@ def discriminator(): 'data_source_table_path': 'dataSourceTablePath', # noqa: E501 'description': 'description', # noqa: E501 'grain': 'grain', # noqa: E501 + 'precedence': 'precedence', # noqa: E501 'reference_properties': 'referenceProperties', # noqa: E501 'sql': 'sql', # noqa: E501 'tags': 'tags', # noqa: E501 @@ -192,6 +194,7 @@ def _from_openapi_data(cls, type, *args, **kwargs): # noqa: E501 data_source_table_path ([str]): Path to database table.. [optional] # noqa: E501 description (str): [optional] # noqa: E501 grain ([JsonApiDatasetOutAttributesGrainInner]): [optional] # noqa: E501 + precedence (int): [optional] # noqa: E501 reference_properties ([JsonApiDatasetOutAttributesReferencePropertiesInner]): [optional] # noqa: E501 sql (JsonApiDatasetOutAttributesSql): [optional] # noqa: E501 tags ([str]): [optional] # noqa: E501 @@ -292,6 +295,7 @@ def __init__(self, type, *args, **kwargs): # noqa: E501 data_source_table_path ([str]): Path to database table.. [optional] # noqa: E501 description (str): [optional] # noqa: E501 grain ([JsonApiDatasetOutAttributesGrainInner]): [optional] # noqa: E501 + precedence (int): [optional] # noqa: E501 reference_properties ([JsonApiDatasetOutAttributesReferencePropertiesInner]): [optional] # noqa: E501 sql (JsonApiDatasetOutAttributesSql): [optional] # noqa: E501 tags ([str]): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_attributes.py index d488d3644..d56511ae2 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_attributes.py @@ -56,6 +56,11 @@ class JsonApiFactOutAttributes(ModelNormal): """ allowed_values = { + ('operation',): { + 'SUM': "SUM", + 'MIN': "MIN", + 'MAX': "MAX", + }, ('source_column_data_type',): { 'INT': "INT", 'STRING': "STRING", @@ -102,6 +107,7 @@ def openapi_types(): return { 'are_relations_valid': (bool,), # noqa: E501 'description': (str,), # noqa: E501 + 'operation': (str,), # noqa: E501 'source_column': (str,), # noqa: E501 'source_column_data_type': (str,), # noqa: E501 'tags': ([str],), # noqa: E501 @@ -116,6 +122,7 @@ def discriminator(): attribute_map = { 'are_relations_valid': 'areRelationsValid', # noqa: E501 'description': 'description', # noqa: E501 + 'operation': 'operation', # noqa: E501 'source_column': 'sourceColumn', # noqa: E501 'source_column_data_type': 'sourceColumnDataType', # noqa: E501 'tags': 'tags', # noqa: E501 @@ -165,6 +172,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) are_relations_valid (bool): [optional] # noqa: E501 description (str): [optional] # noqa: E501 + operation (str): [optional] # noqa: E501 source_column (str): [optional] # noqa: E501 source_column_data_type (str): [optional] # noqa: E501 tags ([str]): [optional] # noqa: E501 @@ -256,6 +264,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) are_relations_valid (bool): [optional] # noqa: E501 description (str): [optional] # noqa: E501 + operation (str): [optional] # noqa: E501 source_column (str): [optional] # noqa: E501 source_column_data_type (str): [optional] # noqa: E501 tags ([str]): [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_document.py index f38dcdde7..5df4e2694 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_document.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_document.py @@ -31,11 +31,11 @@ def lazy_import(): - from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks from gooddata_api_client.model.json_api_fact_out import JsonApiFactOut + from gooddata_api_client.model.json_api_fact_out_includes import JsonApiFactOutIncludes from gooddata_api_client.model.object_links import ObjectLinks - globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks globals()['JsonApiFactOut'] = JsonApiFactOut + globals()['JsonApiFactOutIncludes'] = JsonApiFactOutIncludes globals()['ObjectLinks'] = ObjectLinks @@ -95,7 +95,7 @@ def openapi_types(): lazy_import() return { 'data': (JsonApiFactOut,), # noqa: E501 - 'included': ([JsonApiDatasetOutWithLinks],), # noqa: E501 + 'included': ([JsonApiFactOutIncludes],), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 } @@ -154,7 +154,7 @@ def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - included ([JsonApiDatasetOutWithLinks]): Included resources. [optional] # noqa: E501 + included ([JsonApiFactOutIncludes]): Included resources. [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ @@ -245,7 +245,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - included ([JsonApiDatasetOutWithLinks]): Included resources. [optional] # noqa: E501 + included ([JsonApiFactOutIncludes]): Included resources. [optional] # noqa: E501 links (ObjectLinks): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_includes.py new file mode 100644 index 000000000..cf6af16c7 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_includes.py @@ -0,0 +1,359 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_attribute_hierarchy_out_meta import JsonApiAttributeHierarchyOutMeta + from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks + from gooddata_api_client.model.json_api_fact_out_attributes import JsonApiFactOutAttributes + from gooddata_api_client.model.json_api_fact_out_relationships import JsonApiFactOutRelationships + from gooddata_api_client.model.json_api_fact_out_with_links import JsonApiFactOutWithLinks + from gooddata_api_client.model.object_links import ObjectLinks + globals()['JsonApiAttributeHierarchyOutMeta'] = JsonApiAttributeHierarchyOutMeta + globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks + globals()['JsonApiFactOutAttributes'] = JsonApiFactOutAttributes + globals()['JsonApiFactOutRelationships'] = JsonApiFactOutRelationships + globals()['JsonApiFactOutWithLinks'] = JsonApiFactOutWithLinks + globals()['ObjectLinks'] = ObjectLinks + + +class JsonApiFactOutIncludes(ModelComposed): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('type',): { + 'FACT': "fact", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'meta': (JsonApiAttributeHierarchyOutMeta,), # noqa: E501 + 'relationships': (JsonApiFactOutRelationships,), # noqa: E501 + 'links': (ObjectLinks,), # noqa: E501 + 'attributes': (JsonApiFactOutAttributes,), # noqa: E501 + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'meta': 'meta', # noqa: E501 + 'relationships': 'relationships', # noqa: E501 + 'links': 'links', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """JsonApiFactOutIncludes - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + meta (JsonApiAttributeHierarchyOutMeta): [optional] # noqa: E501 + relationships (JsonApiFactOutRelationships): [optional] # noqa: E501 + links (ObjectLinks): [optional] # noqa: E501 + attributes (JsonApiFactOutAttributes): [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 "fact" # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + '_composed_instances', + '_var_name_to_model_instances', + '_additional_properties_model_instances', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """JsonApiFactOutIncludes - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + meta (JsonApiAttributeHierarchyOutMeta): [optional] # noqa: E501 + relationships (JsonApiFactOutRelationships): [optional] # noqa: E501 + links (ObjectLinks): [optional] # noqa: E501 + attributes (JsonApiFactOutAttributes): [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 "fact" # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") + + @cached_property + def _composed_schemas(): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + lazy_import() + return { + 'anyOf': [ + ], + 'allOf': [ + ], + 'oneOf': [ + JsonApiDatasetOutWithLinks, + JsonApiFactOutWithLinks, + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_list.py index 23d085261..55f89ed5c 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_list.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_list.py @@ -32,11 +32,11 @@ def lazy_import(): from gooddata_api_client.model.json_api_analytical_dashboard_out_list_meta import JsonApiAnalyticalDashboardOutListMeta - from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks + from gooddata_api_client.model.json_api_fact_out_includes import JsonApiFactOutIncludes from gooddata_api_client.model.json_api_fact_out_with_links import JsonApiFactOutWithLinks from gooddata_api_client.model.list_links import ListLinks globals()['JsonApiAnalyticalDashboardOutListMeta'] = JsonApiAnalyticalDashboardOutListMeta - globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks + globals()['JsonApiFactOutIncludes'] = JsonApiFactOutIncludes globals()['JsonApiFactOutWithLinks'] = JsonApiFactOutWithLinks globals()['ListLinks'] = ListLinks @@ -99,7 +99,7 @@ def openapi_types(): lazy_import() return { 'data': ([JsonApiFactOutWithLinks],), # noqa: E501 - 'included': ([JsonApiDatasetOutWithLinks],), # noqa: E501 + 'included': ([JsonApiFactOutIncludes],), # noqa: E501 'links': (ListLinks,), # noqa: E501 'meta': (JsonApiAnalyticalDashboardOutListMeta,), # noqa: E501 } @@ -160,7 +160,7 @@ def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - included ([JsonApiDatasetOutWithLinks]): Included resources. [optional] # noqa: E501 + included ([JsonApiFactOutIncludes]): Included resources. [optional] # noqa: E501 links (ListLinks): [optional] # noqa: E501 meta (JsonApiAnalyticalDashboardOutListMeta): [optional] # noqa: E501 """ @@ -252,7 +252,7 @@ def __init__(self, data, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - included ([JsonApiDatasetOutWithLinks]): Included resources. [optional] # noqa: E501 + included ([JsonApiFactOutIncludes]): Included resources. [optional] # noqa: E501 links (ListLinks): [optional] # noqa: E501 meta (JsonApiAnalyticalDashboardOutListMeta): [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_relationships.py index 241b6344c..a49cc00be 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_relationships.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_relationships.py @@ -32,7 +32,9 @@ def lazy_import(): from gooddata_api_client.model.json_api_attribute_out_relationships_dataset import JsonApiAttributeOutRelationshipsDataset + from gooddata_api_client.model.json_api_fact_out_relationships_source_fact import JsonApiFactOutRelationshipsSourceFact globals()['JsonApiAttributeOutRelationshipsDataset'] = JsonApiAttributeOutRelationshipsDataset + globals()['JsonApiFactOutRelationshipsSourceFact'] = JsonApiFactOutRelationshipsSourceFact class JsonApiFactOutRelationships(ModelNormal): @@ -89,6 +91,7 @@ def openapi_types(): lazy_import() return { 'dataset': (JsonApiAttributeOutRelationshipsDataset,), # noqa: E501 + 'source_fact': (JsonApiFactOutRelationshipsSourceFact,), # noqa: E501 } @cached_property @@ -98,6 +101,7 @@ def discriminator(): attribute_map = { 'dataset': 'dataset', # noqa: E501 + 'source_fact': 'sourceFact', # noqa: E501 } read_only_vars = { @@ -142,6 +146,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) dataset (JsonApiAttributeOutRelationshipsDataset): [optional] # noqa: E501 + source_fact (JsonApiFactOutRelationshipsSourceFact): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -228,6 +233,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) dataset (JsonApiAttributeOutRelationshipsDataset): [optional] # noqa: E501 + source_fact (JsonApiFactOutRelationshipsSourceFact): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_relationships_source_fact.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_relationships_source_fact.py new file mode 100644 index 000000000..2c276ae13 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_relationships_source_fact.py @@ -0,0 +1,276 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_fact_to_one_linkage import JsonApiFactToOneLinkage + globals()['JsonApiFactToOneLinkage'] = JsonApiFactToOneLinkage + + +class JsonApiFactOutRelationshipsSourceFact(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'data': (JsonApiFactToOneLinkage,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 + """JsonApiFactOutRelationshipsSourceFact - a model defined in OpenAPI + + Args: + data (JsonApiFactToOneLinkage): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, data, *args, **kwargs): # noqa: E501 + """JsonApiFactOutRelationshipsSourceFact - a model defined in OpenAPI + + Args: + data (JsonApiFactToOneLinkage): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_fact_to_one_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_to_one_linkage.py new file mode 100644 index 000000000..1b434c3e1 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_to_one_linkage.py @@ -0,0 +1,327 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_fact_linkage import JsonApiFactLinkage + globals()['JsonApiFactLinkage'] = JsonApiFactLinkage + + +class JsonApiFactToOneLinkage(ModelComposed): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('type',): { + 'FACT': "fact", + }, + } + + 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 = True + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """JsonApiFactToOneLinkage - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + id (str): [optional] # noqa: E501 + type (str): [optional] if omitted the server will use the default value of "fact" # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + '_composed_instances', + '_var_name_to_model_instances', + '_additional_properties_model_instances', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """JsonApiFactToOneLinkage - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + id (str): [optional] # noqa: E501 + type (str): [optional] if omitted the server will use the default value of "fact" # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") + + @cached_property + def _composed_schemas(): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + lazy_import() + return { + 'anyOf': [ + ], + 'allOf': [ + ], + 'oneOf': [ + JsonApiFactLinkage, + ], + } 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 a946fa8de..bcbf24519 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_in_attributes.py @@ -67,9 +67,17 @@ class JsonApiIdentityProviderInAttributes(ModelNormal): ('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, }, @@ -100,7 +108,11 @@ def openapi_types(): 'custom_claim_mapping': ({str: (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 } @@ -114,7 +126,11 @@ def discriminator(): 'custom_claim_mapping': 'customClaimMapping', # 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 } @@ -165,7 +181,11 @@ def _from_openapi_data(cls, identifiers, *args, **kwargs): # noqa: E501 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 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 """ @@ -259,7 +279,11 @@ def __init__(self, identifiers, *args, **kwargs): # noqa: E501 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 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 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_linkage.py new file mode 100644 index 000000000..02b7bfa06 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_linkage.py @@ -0,0 +1,281 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class JsonApiIdentityProviderLinkage(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('type',): { + 'IDENTITYPROVIDER': "identityProvider", + }, + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + """JsonApiIdentityProviderLinkage - a model defined in OpenAPI + + Args: + id (str): + + Keyword Args: + type (str): defaults to "identityProvider", must be one of ["identityProvider", ] # noqa: E501 + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + type = kwargs.get('type', "identityProvider") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.id = id + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, id, *args, **kwargs): # noqa: E501 + """JsonApiIdentityProviderLinkage - a model defined in OpenAPI + + Args: + id (str): + + Keyword Args: + type (str): defaults to "identityProvider", must be one of ["identityProvider", ] # noqa: E501 + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + type = kwargs.get('type', "identityProvider") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.id = id + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_attributes.py index c942a6de7..4d0f98c66 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_out_attributes.py @@ -64,9 +64,17 @@ class JsonApiIdentityProviderOutAttributes(ModelNormal): ('oauth_client_id',): { '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, + }, } @cached_property @@ -93,7 +101,11 @@ def openapi_types(): 'identifiers': ([str],), # noqa: E501 'custom_claim_mapping': ({str: (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 + 'oauth_issuer_id': (str,), # noqa: E501 'oauth_issuer_location': (str,), # noqa: E501 + 'oauth_subject_id_claim': (str,), # noqa: E501 } @cached_property @@ -105,7 +117,11 @@ def discriminator(): 'identifiers': 'identifiers', # noqa: E501 'custom_claim_mapping': 'customClaimMapping', # noqa: E501 'oauth_client_id': 'oauthClientId', # 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 } read_only_vars = { @@ -154,7 +170,11 @@ def _from_openapi_data(cls, identifiers, *args, **kwargs): # noqa: E501 _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 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 + 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 """ _check_type = kwargs.pop('_check_type', True) @@ -246,7 +266,11 @@ def __init__(self, identifiers, *args, **kwargs): # noqa: E501 _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 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 + 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 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch_attributes.py index fb4b8ea6f..9cf5d6077 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_patch_attributes.py @@ -67,9 +67,17 @@ class JsonApiIdentityProviderPatchAttributes(ModelNormal): ('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, }, @@ -100,7 +108,11 @@ def openapi_types(): '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 } @@ -114,7 +126,11 @@ def discriminator(): '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 } @@ -163,7 +179,11 @@ def _from_openapi_data(cls, *args, **kwargs): # 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 """ @@ -254,7 +274,11 @@ def __init__(self, *args, **kwargs): # 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 """ diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_to_one_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_to_one_linkage.py new file mode 100644 index 000000000..86b767d49 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_identity_provider_to_one_linkage.py @@ -0,0 +1,327 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_identity_provider_linkage import JsonApiIdentityProviderLinkage + globals()['JsonApiIdentityProviderLinkage'] = JsonApiIdentityProviderLinkage + + +class JsonApiIdentityProviderToOneLinkage(ModelComposed): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('type',): { + 'IDENTITYPROVIDER': "identityProvider", + }, + } + + 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 = True + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """JsonApiIdentityProviderToOneLinkage - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + id (str): [optional] # noqa: E501 + type (str): [optional] if omitted the server will use the default value of "identityProvider" # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + '_composed_instances', + '_var_name_to_model_instances', + '_additional_properties_model_instances', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """JsonApiIdentityProviderToOneLinkage - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + id (str): [optional] # noqa: E501 + type (str): [optional] if omitted the server will use the default value of "identityProvider" # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") + + @cached_property + def _composed_schemas(): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + lazy_import() + return { + 'anyOf': [ + ], + 'allOf': [ + ], + 'oneOf': [ + JsonApiIdentityProviderLinkage, + ], + } 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 bb8f47f5e..c6839715d 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 @@ -71,9 +71,6 @@ class JsonApiLlmEndpointInAttributes(ModelNormal): ('base_url',): { 'max_length': 255, }, - ('description',): { - 'max_length': 10000, - }, ('llm_model',): { 'max_length': 255, }, @@ -106,7 +103,6 @@ def openapi_types(): 'title': (str,), # noqa: E501 'token': (str,), # noqa: E501 'base_url': (str, none_type,), # noqa: E501 - 'description': (str, none_type,), # noqa: E501 'llm_model': (str,), # noqa: E501 'llm_organization': (str, none_type,), # noqa: E501 'provider': (str,), # noqa: E501 @@ -121,7 +117,6 @@ def discriminator(): 'title': 'title', # noqa: E501 'token': 'token', # noqa: E501 'base_url': 'baseUrl', # noqa: E501 - 'description': 'description', # noqa: E501 'llm_model': 'llmModel', # noqa: E501 'llm_organization': 'llmOrganization', # noqa: E501 'provider': 'provider', # noqa: E501 @@ -173,7 +168,6 @@ def _from_openapi_data(cls, title, token, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 - description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 llm_model (str): 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 @@ -269,7 +263,6 @@ def __init__(self, title, token, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 - description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 llm_model (str): 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 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 4ab0145be..752791573 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 @@ -68,9 +68,6 @@ class JsonApiLlmEndpointOutAttributes(ModelNormal): ('base_url',): { 'max_length': 255, }, - ('description',): { - 'max_length': 10000, - }, ('llm_model',): { 'max_length': 255, }, @@ -102,7 +99,6 @@ def openapi_types(): return { 'title': (str,), # noqa: E501 'base_url': (str, none_type,), # noqa: E501 - 'description': (str, none_type,), # noqa: E501 'llm_model': (str,), # noqa: E501 'llm_organization': (str, none_type,), # noqa: E501 'provider': (str,), # noqa: E501 @@ -116,7 +112,6 @@ def discriminator(): attribute_map = { 'title': 'title', # noqa: E501 'base_url': 'baseUrl', # noqa: E501 - 'description': 'description', # noqa: E501 'llm_model': 'llmModel', # noqa: E501 'llm_organization': 'llmOrganization', # noqa: E501 'provider': 'provider', # noqa: E501 @@ -167,7 +162,6 @@ def _from_openapi_data(cls, title, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 - description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 llm_model (str): 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 @@ -261,7 +255,6 @@ def __init__(self, title, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 - description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 llm_model (str): 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 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 9d92632de..0ae8b0b03 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 @@ -65,9 +65,6 @@ class JsonApiLlmEndpointPatchAttributes(ModelNormal): ('base_url',): { 'max_length': 255, }, - ('description',): { - 'max_length': 10000, - }, ('llm_model',): { 'max_length': 255, }, @@ -104,7 +101,6 @@ def openapi_types(): """ return { 'base_url': (str, none_type,), # noqa: E501 - 'description': (str, none_type,), # noqa: E501 'llm_model': (str,), # noqa: E501 'llm_organization': (str, none_type,), # noqa: E501 'provider': (str,), # noqa: E501 @@ -119,7 +115,6 @@ def discriminator(): attribute_map = { 'base_url': 'baseUrl', # noqa: E501 - 'description': 'description', # noqa: E501 'llm_model': 'llmModel', # noqa: E501 'llm_organization': 'llmOrganization', # noqa: E501 'provider': 'provider', # noqa: E501 @@ -169,7 +164,6 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 - description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 llm_model (str): 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 @@ -261,7 +255,6 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) base_url (str, none_type): Custom LLM endpoint.. [optional] # noqa: E501 - description (str, none_type): User-facing description of the LLM Provider.. [optional] # noqa: E501 llm_model (str): 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 diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out.py new file mode 100644 index 000000000..c82e5d404 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out.py @@ -0,0 +1,296 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_notification_channel_identifier_out_attributes import JsonApiNotificationChannelIdentifierOutAttributes + globals()['JsonApiNotificationChannelIdentifierOutAttributes'] = JsonApiNotificationChannelIdentifierOutAttributes + + +class JsonApiNotificationChannelIdentifierOut(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('type',): { + 'NOTIFICATIONCHANNELIDENTIFIER': "notificationChannelIdentifier", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'attributes': (JsonApiNotificationChannelIdentifierOutAttributes,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 + """JsonApiNotificationChannelIdentifierOut - a model defined in OpenAPI + + Args: + id (str): API identifier of an object + + Keyword Args: + type (str): Object type. defaults to "notificationChannelIdentifier", must be one of ["notificationChannelIdentifier", ] # noqa: E501 + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + attributes (JsonApiNotificationChannelIdentifierOutAttributes): [optional] # noqa: E501 + """ + + type = kwargs.get('type', "notificationChannelIdentifier") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.id = id + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, id, *args, **kwargs): # noqa: E501 + """JsonApiNotificationChannelIdentifierOut - a model defined in OpenAPI + + Args: + id (str): API identifier of an object + + Keyword Args: + type (str): Object type. defaults to "notificationChannelIdentifier", must be one of ["notificationChannelIdentifier", ] # noqa: E501 + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + attributes (JsonApiNotificationChannelIdentifierOutAttributes): [optional] # noqa: E501 + """ + + type = kwargs.get('type', "notificationChannelIdentifier") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.id = id + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/dashboard_date_filter_date_filter_all_of.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_attributes.py similarity index 79% rename from gooddata-api-client/gooddata_api_client/model/dashboard_date_filter_date_filter_all_of.py rename to gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_attributes.py index 03041fb71..3cd18a400 100644 --- a/gooddata-api-client/gooddata_api_client/model/dashboard_date_filter_date_filter_all_of.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_attributes.py @@ -31,7 +31,7 @@ -class DashboardDateFilterDateFilterAllOf(ModelNormal): +class JsonApiNotificationChannelIdentifierOutAttributes(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -56,38 +56,26 @@ class DashboardDateFilterDateFilterAllOf(ModelNormal): """ allowed_values = { - ('granularity',): { - 'ALL_TIME_GRANULARITY': "ALL_TIME_GRANULARITY", - 'GDC.TIME.YEAR': "GDC.time.year", - 'GDC.TIME.WEEK_US': "GDC.time.week_us", - 'GDC.TIME.WEEK_IN_YEAR': "GDC.time.week_in_year", - 'GDC.TIME.WEEK_IN_QUARTER': "GDC.time.week_in_quarter", - 'GDC.TIME.WEEK': "GDC.time.week", - 'GDC.TIME.EUWEEK_IN_YEAR': "GDC.time.euweek_in_year", - 'GDC.TIME.EUWEEK_IN_QUARTER': "GDC.time.euweek_in_quarter", - 'GDC.TIME.QUARTER': "GDC.time.quarter", - 'GDC.TIME.QUARTER_IN_YEAR': "GDC.time.quarter_in_year", - 'GDC.TIME.MONTH': "GDC.time.month", - 'GDC.TIME.MONTH_IN_QUARTER': "GDC.time.month_in_quarter", - 'GDC.TIME.MONTH_IN_YEAR': "GDC.time.month_in_year", - 'GDC.TIME.DAY_IN_YEAR': "GDC.time.day_in_year", - 'GDC.TIME.DAY_IN_QUARTER': "GDC.time.day_in_quarter", - 'GDC.TIME.DAY_IN_MONTH': "GDC.time.day_in_month", - 'GDC.TIME.DAY_IN_WEEK': "GDC.time.day_in_week", - 'GDC.TIME.DAY_IN_EUWEEK': "GDC.time.day_in_euweek", - 'GDC.TIME.DATE': "GDC.time.date", - 'GDC.TIME.HOUR': "GDC.time.hour", - 'GDC.TIME.HOUR_IN_DAY': "GDC.time.hour_in_day", - 'GDC.TIME.MINUTE': "GDC.time.minute", - 'GDC.TIME.MINUTE_IN_HOUR': "GDC.time.minute_in_hour", + ('allowed_recipients',): { + 'CREATOR': "CREATOR", + 'INTERNAL': "INTERNAL", + 'EXTERNAL': "EXTERNAL", }, - ('type',): { - 'RELATIVE': "relative", - 'ABSOLUTE': "absolute", + ('destination_type',): { + 'WEBHOOK': "WEBHOOK", + 'SMTP': "SMTP", + 'DEFAULT_SMTP': "DEFAULT_SMTP", + 'IN_PLATFORM': "IN_PLATFORM", }, } validations = { + ('description',): { + 'max_length': 10000, + }, + ('name',): { + 'max_length': 255, + }, } @cached_property @@ -111,12 +99,10 @@ def openapi_types(): and the value is attribute type. """ return { - 'attribute': (str,), # noqa: E501 - 'data_set': (str,), # noqa: E501 - '_from': (str,), # noqa: E501 - 'granularity': (str,), # noqa: E501 - 'to': (str,), # noqa: E501 - 'type': (str,), # noqa: E501 + 'allowed_recipients': (str,), # noqa: E501 + 'description': (str, none_type,), # noqa: E501 + 'destination_type': (str,), # noqa: E501 + 'name': (str, none_type,), # noqa: E501 } @cached_property @@ -125,12 +111,10 @@ def discriminator(): attribute_map = { - 'attribute': 'attribute', # noqa: E501 - 'data_set': 'dataSet', # noqa: E501 - '_from': 'from', # noqa: E501 - 'granularity': 'granularity', # noqa: E501 - 'to': 'to', # noqa: E501 - 'type': 'type', # noqa: E501 + 'allowed_recipients': 'allowedRecipients', # noqa: E501 + 'description': 'description', # noqa: E501 + 'destination_type': 'destinationType', # noqa: E501 + 'name': 'name', # noqa: E501 } read_only_vars = { @@ -141,7 +125,7 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 - """DashboardDateFilterDateFilterAllOf - a model defined in OpenAPI + """JsonApiNotificationChannelIdentifierOutAttributes - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -174,12 +158,10 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attribute (str): [optional] # noqa: E501 - data_set (str): [optional] # noqa: E501 - _from (str): [optional] # noqa: E501 - granularity (str): [optional] # noqa: E501 - to (str): [optional] # noqa: E501 - type (str): [optional] # noqa: E501 + allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] # noqa: E501 + description (str, none_type): [optional] # noqa: E501 + destination_type (str): [optional] # noqa: E501 + name (str, none_type): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -232,7 +214,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 @convert_js_args_to_python_args def __init__(self, *args, **kwargs): # noqa: E501 - """DashboardDateFilterDateFilterAllOf - a model defined in OpenAPI + """JsonApiNotificationChannelIdentifierOutAttributes - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -265,12 +247,10 @@ def __init__(self, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attribute (str): [optional] # noqa: E501 - data_set (str): [optional] # noqa: E501 - _from (str): [optional] # noqa: E501 - granularity (str): [optional] # noqa: E501 - to (str): [optional] # noqa: E501 - type (str): [optional] # noqa: E501 + allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] # noqa: E501 + description (str, none_type): [optional] # noqa: E501 + destination_type (str): [optional] # noqa: E501 + name (str, none_type): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_document.py new file mode 100644 index 000000000..b7a36300f --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_document.py @@ -0,0 +1,282 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_notification_channel_identifier_out import JsonApiNotificationChannelIdentifierOut + from gooddata_api_client.model.object_links import ObjectLinks + globals()['JsonApiNotificationChannelIdentifierOut'] = JsonApiNotificationChannelIdentifierOut + globals()['ObjectLinks'] = ObjectLinks + + +class JsonApiNotificationChannelIdentifierOutDocument(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'data': (JsonApiNotificationChannelIdentifierOut,), # noqa: E501 + 'links': (ObjectLinks,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + 'links': 'links', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 + """JsonApiNotificationChannelIdentifierOutDocument - a model defined in OpenAPI + + Args: + data (JsonApiNotificationChannelIdentifierOut): + + 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,) + links (ObjectLinks): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, data, *args, **kwargs): # noqa: E501 + """JsonApiNotificationChannelIdentifierOutDocument - a model defined in OpenAPI + + Args: + data (JsonApiNotificationChannelIdentifierOut): + + 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,) + links (ObjectLinks): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_list.py new file mode 100644 index 000000000..7200cedff --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_list.py @@ -0,0 +1,290 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_analytical_dashboard_out_list_meta import JsonApiAnalyticalDashboardOutListMeta + from gooddata_api_client.model.json_api_notification_channel_identifier_out_with_links import JsonApiNotificationChannelIdentifierOutWithLinks + from gooddata_api_client.model.list_links import ListLinks + globals()['JsonApiAnalyticalDashboardOutListMeta'] = JsonApiAnalyticalDashboardOutListMeta + globals()['JsonApiNotificationChannelIdentifierOutWithLinks'] = JsonApiNotificationChannelIdentifierOutWithLinks + globals()['ListLinks'] = ListLinks + + +class JsonApiNotificationChannelIdentifierOutList(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + ('data',): { + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'data': ([JsonApiNotificationChannelIdentifierOutWithLinks],), # noqa: E501 + 'links': (ListLinks,), # noqa: E501 + 'meta': (JsonApiAnalyticalDashboardOutListMeta,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + 'links': 'links', # noqa: E501 + 'meta': 'meta', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 + """JsonApiNotificationChannelIdentifierOutList - a model defined in OpenAPI + + Args: + data ([JsonApiNotificationChannelIdentifierOutWithLinks]): + + 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,) + links (ListLinks): [optional] # noqa: E501 + meta (JsonApiAnalyticalDashboardOutListMeta): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, data, *args, **kwargs): # noqa: E501 + """JsonApiNotificationChannelIdentifierOutList - a model defined in OpenAPI + + Args: + data ([JsonApiNotificationChannelIdentifierOutWithLinks]): + + 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,) + links (ListLinks): [optional] # noqa: E501 + meta (JsonApiAnalyticalDashboardOutListMeta): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_with_links.py new file mode 100644 index 000000000..d266e1886 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_identifier_out_with_links.py @@ -0,0 +1,349 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_notification_channel_identifier_out import JsonApiNotificationChannelIdentifierOut + from gooddata_api_client.model.json_api_notification_channel_identifier_out_attributes import JsonApiNotificationChannelIdentifierOutAttributes + from gooddata_api_client.model.object_links import ObjectLinks + from gooddata_api_client.model.object_links_container import ObjectLinksContainer + globals()['JsonApiNotificationChannelIdentifierOut'] = JsonApiNotificationChannelIdentifierOut + globals()['JsonApiNotificationChannelIdentifierOutAttributes'] = JsonApiNotificationChannelIdentifierOutAttributes + globals()['ObjectLinks'] = ObjectLinks + globals()['ObjectLinksContainer'] = ObjectLinksContainer + + +class JsonApiNotificationChannelIdentifierOutWithLinks(ModelComposed): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('type',): { + 'NOTIFICATIONCHANNELIDENTIFIER': "notificationChannelIdentifier", + }, + } + + validations = { + ('id',): { + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'id': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + 'attributes': (JsonApiNotificationChannelIdentifierOutAttributes,), # noqa: E501 + 'links': (ObjectLinks,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'id': 'id', # noqa: E501 + 'type': 'type', # noqa: E501 + 'attributes': 'attributes', # noqa: E501 + 'links': 'links', # noqa: E501 + } + + read_only_vars = { + } + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """JsonApiNotificationChannelIdentifierOutWithLinks - a model defined in OpenAPI + + Keyword Args: + id (str): API identifier of an object + type (str): Object type. defaults to "notificationChannelIdentifier", must be one of ["notificationChannelIdentifier", ] # noqa: E501 + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + attributes (JsonApiNotificationChannelIdentifierOutAttributes): [optional] # noqa: E501 + links (ObjectLinks): [optional] # noqa: E501 + """ + + type = kwargs.get('type', "notificationChannelIdentifier") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + '_composed_instances', + '_var_name_to_model_instances', + '_additional_properties_model_instances', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """JsonApiNotificationChannelIdentifierOutWithLinks - a model defined in OpenAPI + + Keyword Args: + id (str): API identifier of an object + type (str): Object type. defaults to "notificationChannelIdentifier", must be one of ["notificationChannelIdentifier", ] # noqa: E501 + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + attributes (JsonApiNotificationChannelIdentifierOutAttributes): [optional] # noqa: E501 + links (ObjectLinks): [optional] # noqa: E501 + """ + + type = kwargs.get('type', "notificationChannelIdentifier") + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + constant_args = { + '_check_type': _check_type, + '_path_to_item': _path_to_item, + '_spec_property_naming': _spec_property_naming, + '_configuration': _configuration, + '_visited_composed_classes': self._visited_composed_classes, + } + composed_info = validate_get_composed_info( + constant_args, kwargs, self) + self._composed_instances = composed_info[0] + self._var_name_to_model_instances = composed_info[1] + self._additional_properties_model_instances = composed_info[2] + discarded_args = composed_info[3] + + for var_name, var_value in kwargs.items(): + if var_name in discarded_args and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self._additional_properties_model_instances: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") + + @cached_property + def _composed_schemas(): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + lazy_import() + return { + 'anyOf': [ + ], + 'allOf': [ + JsonApiNotificationChannelIdentifierOut, + ObjectLinksContainer, + ], + 'oneOf': [ + ], + } diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_in_attributes.py index e6e643f31..7717d6ba1 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_in_attributes.py @@ -77,12 +77,18 @@ class JsonApiNotificationChannelInAttributes(ModelNormal): } validations = { + ('custom_dashboard_url',): { + 'max_length': 255, + }, ('description',): { 'max_length': 10000, }, ('name',): { 'max_length': 255, }, + ('notification_source',): { + 'max_length': 10000, + }, } @cached_property @@ -115,6 +121,7 @@ def openapi_types(): 'destination': (JsonApiNotificationChannelInAttributesDestination,), # noqa: E501 'in_platform_notification': (str,), # noqa: E501 'name': (str, none_type,), # noqa: E501 + 'notification_source': (str,), # noqa: E501 } @cached_property @@ -130,6 +137,7 @@ def discriminator(): 'destination': 'destination', # noqa: E501 'in_platform_notification': 'inPlatformNotification', # noqa: E501 'name': 'name', # noqa: E501 + 'notification_source': 'notificationSource', # noqa: E501 } read_only_vars = { @@ -174,12 +182,13 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] # noqa: E501 - custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are: {workspaceId} {dashboardId} {automationId} {asOfDate} . [optional] # noqa: E501 dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] # noqa: E501 description (str, none_type): [optional] # noqa: E501 destination (JsonApiNotificationChannelInAttributesDestination): [optional] # noqa: E501 in_platform_notification (str): In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications . [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 + notification_source (str): Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are: {{workspaceId}} {{workspaceName}} {{workspaceDescription}} {{dashboardId}} {{dashboardName}} {{dashboardDescription}} . [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -266,12 +275,13 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] # noqa: E501 - custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are: {workspaceId} {dashboardId} {automationId} {asOfDate} . [optional] # noqa: E501 dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] # noqa: E501 description (str, none_type): [optional] # noqa: E501 destination (JsonApiNotificationChannelInAttributesDestination): [optional] # noqa: E501 in_platform_notification (str): In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications . [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 + notification_source (str): Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are: {{workspaceId}} {{workspaceName}} {{workspaceDescription}} {{dashboardId}} {{dashboardName}} {{dashboardDescription}} . [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_attributes.py index 244a77a0f..3454871ad 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_notification_channel_out_attributes.py @@ -84,12 +84,18 @@ class JsonApiNotificationChannelOutAttributes(ModelNormal): } validations = { + ('custom_dashboard_url',): { + 'max_length': 255, + }, ('description',): { 'max_length': 10000, }, ('name',): { 'max_length': 255, }, + ('notification_source',): { + 'max_length': 10000, + }, } @cached_property @@ -123,6 +129,7 @@ def openapi_types(): 'destination_type': (str, none_type,), # noqa: E501 'in_platform_notification': (str,), # noqa: E501 'name': (str, none_type,), # noqa: E501 + 'notification_source': (str,), # noqa: E501 } @cached_property @@ -139,6 +146,7 @@ def discriminator(): 'destination_type': 'destinationType', # noqa: E501 'in_platform_notification': 'inPlatformNotification', # noqa: E501 'name': 'name', # noqa: E501 + 'notification_source': 'notificationSource', # noqa: E501 } read_only_vars = { @@ -183,13 +191,14 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] # noqa: E501 - custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are: {workspaceId} {dashboardId} {automationId} {asOfDate} . [optional] # noqa: E501 dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] # noqa: E501 description (str, none_type): [optional] # noqa: E501 destination (JsonApiNotificationChannelInAttributesDestination): [optional] # noqa: E501 destination_type (str, none_type): [optional] # noqa: E501 in_platform_notification (str): In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications . [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 + notification_source (str): Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are: {{workspaceId}} {{workspaceName}} {{workspaceDescription}} {{dashboardId}} {{dashboardName}} {{dashboardDescription}} . [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -276,13 +285,14 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) allowed_recipients (str): Allowed recipients of notifications from this channel. CREATOR - only the creator INTERNAL - all users within the organization EXTERNAL - all recipients including those outside the organization . [optional] # noqa: E501 - custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.. [optional] # noqa: E501 + custom_dashboard_url (str): Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are: {workspaceId} {dashboardId} {automationId} {asOfDate} . [optional] # noqa: E501 dashboard_link_visibility (str): Dashboard link visibility in notifications. HIDDEN - the link will not be included INTERNAL_ONLY - only internal users will see the link ALL - all users will see the link . [optional] # noqa: E501 description (str, none_type): [optional] # noqa: E501 destination (JsonApiNotificationChannelInAttributesDestination): [optional] # noqa: E501 destination_type (str, none_type): [optional] # noqa: E501 in_platform_notification (str): In-platform notifications configuration. No effect if the destination type is IN_PLATFORM. DISABLED - in-platform notifications are not sent ENABLED - in-platform notifications are sent in addition to the regular notifications . [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 + notification_source (str): Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are: {{workspaceId}} {{workspaceName}} {{workspaceDescription}} {{dashboardId}} {{dashboardName}} {{dashboardDescription}} . [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in.py index fd3e0689b..471c44c50 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_organization_in.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in.py @@ -32,7 +32,9 @@ def lazy_import(): from gooddata_api_client.model.json_api_organization_in_attributes import JsonApiOrganizationInAttributes + from gooddata_api_client.model.json_api_organization_in_relationships import JsonApiOrganizationInRelationships globals()['JsonApiOrganizationInAttributes'] = JsonApiOrganizationInAttributes + globals()['JsonApiOrganizationInRelationships'] = JsonApiOrganizationInRelationships class JsonApiOrganizationIn(ModelNormal): @@ -99,6 +101,7 @@ def openapi_types(): 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 'attributes': (JsonApiOrganizationInAttributes,), # noqa: E501 + 'relationships': (JsonApiOrganizationInRelationships,), # noqa: E501 } @cached_property @@ -110,6 +113,7 @@ def discriminator(): 'id': 'id', # noqa: E501 'type': 'type', # noqa: E501 'attributes': 'attributes', # noqa: E501 + 'relationships': 'relationships', # noqa: E501 } read_only_vars = { @@ -158,6 +162,7 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) attributes (JsonApiOrganizationInAttributes): [optional] # noqa: E501 + relationships (JsonApiOrganizationInRelationships): [optional] # noqa: E501 """ type = kwargs.get('type', "organization") @@ -251,6 +256,7 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) attributes (JsonApiOrganizationInAttributes): [optional] # noqa: E501 + relationships (JsonApiOrganizationInRelationships): [optional] # noqa: E501 """ type = kwargs.get('type', "organization") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_relationships.py new file mode 100644 index 000000000..8e94bc1a5 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_relationships.py @@ -0,0 +1,270 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_organization_in_relationships_identity_provider import JsonApiOrganizationInRelationshipsIdentityProvider + globals()['JsonApiOrganizationInRelationshipsIdentityProvider'] = JsonApiOrganizationInRelationshipsIdentityProvider + + +class JsonApiOrganizationInRelationships(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 { + 'identity_provider': (JsonApiOrganizationInRelationshipsIdentityProvider,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'identity_provider': 'identityProvider', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """JsonApiOrganizationInRelationships - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + identity_provider (JsonApiOrganizationInRelationshipsIdentityProvider): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """JsonApiOrganizationInRelationships - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + identity_provider (JsonApiOrganizationInRelationshipsIdentityProvider): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_relationships_identity_provider.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_relationships_identity_provider.py new file mode 100644 index 000000000..2a0f14240 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_relationships_identity_provider.py @@ -0,0 +1,276 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + +def lazy_import(): + from gooddata_api_client.model.json_api_identity_provider_to_one_linkage import JsonApiIdentityProviderToOneLinkage + globals()['JsonApiIdentityProviderToOneLinkage'] = JsonApiIdentityProviderToOneLinkage + + +class JsonApiOrganizationInRelationshipsIdentityProvider(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'data': (JsonApiIdentityProviderToOneLinkage,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'data': 'data', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, data, *args, **kwargs): # noqa: E501 + """JsonApiOrganizationInRelationshipsIdentityProvider - a model defined in OpenAPI + + Args: + data (JsonApiIdentityProviderToOneLinkage): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, data, *args, **kwargs): # noqa: E501 + """JsonApiOrganizationInRelationshipsIdentityProvider - a model defined in OpenAPI + + Args: + data (JsonApiIdentityProviderToOneLinkage): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.data = data + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_includes.py index 6b0ae0d00..54dcd2d40 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 @@ -31,12 +31,14 @@ def lazy_import(): - from gooddata_api_client.model.json_api_user_group_in_attributes import JsonApiUserGroupInAttributes + from gooddata_api_client.model.json_api_identity_provider_out_attributes import JsonApiIdentityProviderOutAttributes + from gooddata_api_client.model.json_api_identity_provider_out_with_links import JsonApiIdentityProviderOutWithLinks from gooddata_api_client.model.json_api_user_group_in_relationships import JsonApiUserGroupInRelationships from gooddata_api_client.model.json_api_user_group_out_with_links import JsonApiUserGroupOutWithLinks from gooddata_api_client.model.json_api_user_out_with_links import JsonApiUserOutWithLinks from gooddata_api_client.model.object_links import ObjectLinks - globals()['JsonApiUserGroupInAttributes'] = JsonApiUserGroupInAttributes + globals()['JsonApiIdentityProviderOutAttributes'] = JsonApiIdentityProviderOutAttributes + globals()['JsonApiIdentityProviderOutWithLinks'] = JsonApiIdentityProviderOutWithLinks globals()['JsonApiUserGroupInRelationships'] = JsonApiUserGroupInRelationships globals()['JsonApiUserGroupOutWithLinks'] = JsonApiUserGroupOutWithLinks globals()['JsonApiUserOutWithLinks'] = JsonApiUserOutWithLinks @@ -69,7 +71,7 @@ class JsonApiOrganizationOutIncludes(ModelComposed): allowed_values = { ('type',): { - 'USERGROUP': "userGroup", + 'IDENTITYPROVIDER': "identityProvider", }, } @@ -104,9 +106,9 @@ def openapi_types(): """ lazy_import() return { - 'attributes': (JsonApiUserGroupInAttributes,), # noqa: E501 'relationships': (JsonApiUserGroupInRelationships,), # noqa: E501 'links': (ObjectLinks,), # noqa: E501 + 'attributes': (JsonApiIdentityProviderOutAttributes,), # noqa: E501 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 } @@ -117,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 } @@ -163,11 +165,11 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attributes (JsonApiUserGroupInAttributes): [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 "userGroup" # noqa: E501 + type (str): Object type. [optional] if omitted the server will use the default value of "identityProvider" # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -271,11 +273,11 @@ def __init__(self, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - attributes (JsonApiUserGroupInAttributes): [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 "userGroup" # noqa: E501 + type (str): Object type. [optional] if omitted the server will use the default value of "identityProvider" # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -347,6 +349,7 @@ def _composed_schemas(): 'allOf': [ ], 'oneOf': [ + JsonApiIdentityProviderOutWithLinks, JsonApiUserGroupOutWithLinks, JsonApiUserOutWithLinks, ], diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_relationships.py index 3796819e5..2acb2ac6d 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_relationships.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_relationships.py @@ -32,8 +32,10 @@ def lazy_import(): from gooddata_api_client.model.json_api_filter_view_in_relationships_user import JsonApiFilterViewInRelationshipsUser + from gooddata_api_client.model.json_api_organization_in_relationships_identity_provider import JsonApiOrganizationInRelationshipsIdentityProvider from gooddata_api_client.model.json_api_organization_out_relationships_bootstrap_user_group import JsonApiOrganizationOutRelationshipsBootstrapUserGroup globals()['JsonApiFilterViewInRelationshipsUser'] = JsonApiFilterViewInRelationshipsUser + globals()['JsonApiOrganizationInRelationshipsIdentityProvider'] = JsonApiOrganizationInRelationshipsIdentityProvider globals()['JsonApiOrganizationOutRelationshipsBootstrapUserGroup'] = JsonApiOrganizationOutRelationshipsBootstrapUserGroup @@ -92,6 +94,7 @@ def openapi_types(): return { 'bootstrap_user': (JsonApiFilterViewInRelationshipsUser,), # noqa: E501 'bootstrap_user_group': (JsonApiOrganizationOutRelationshipsBootstrapUserGroup,), # noqa: E501 + 'identity_provider': (JsonApiOrganizationInRelationshipsIdentityProvider,), # noqa: E501 } @cached_property @@ -102,6 +105,7 @@ def discriminator(): attribute_map = { 'bootstrap_user': 'bootstrapUser', # noqa: E501 'bootstrap_user_group': 'bootstrapUserGroup', # noqa: E501 + 'identity_provider': 'identityProvider', # noqa: E501 } read_only_vars = { @@ -147,6 +151,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) bootstrap_user (JsonApiFilterViewInRelationshipsUser): [optional] # noqa: E501 bootstrap_user_group (JsonApiOrganizationOutRelationshipsBootstrapUserGroup): [optional] # noqa: E501 + identity_provider (JsonApiOrganizationInRelationshipsIdentityProvider): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -234,6 +239,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) bootstrap_user (JsonApiFilterViewInRelationshipsUser): [optional] # noqa: E501 bootstrap_user_group (JsonApiOrganizationOutRelationshipsBootstrapUserGroup): [optional] # noqa: E501 + identity_provider (JsonApiOrganizationInRelationshipsIdentityProvider): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_patch.py index d7b16a967..0d4d6c111 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_organization_patch.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_patch.py @@ -32,7 +32,9 @@ def lazy_import(): from gooddata_api_client.model.json_api_organization_in_attributes import JsonApiOrganizationInAttributes + from gooddata_api_client.model.json_api_organization_in_relationships import JsonApiOrganizationInRelationships globals()['JsonApiOrganizationInAttributes'] = JsonApiOrganizationInAttributes + globals()['JsonApiOrganizationInRelationships'] = JsonApiOrganizationInRelationships class JsonApiOrganizationPatch(ModelNormal): @@ -99,6 +101,7 @@ def openapi_types(): 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 'attributes': (JsonApiOrganizationInAttributes,), # noqa: E501 + 'relationships': (JsonApiOrganizationInRelationships,), # noqa: E501 } @cached_property @@ -110,6 +113,7 @@ def discriminator(): 'id': 'id', # noqa: E501 'type': 'type', # noqa: E501 'attributes': 'attributes', # noqa: E501 + 'relationships': 'relationships', # noqa: E501 } read_only_vars = { @@ -158,6 +162,7 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) attributes (JsonApiOrganizationInAttributes): [optional] # noqa: E501 + relationships (JsonApiOrganizationInRelationships): [optional] # noqa: E501 """ type = kwargs.get('type', "organization") @@ -251,6 +256,7 @@ def __init__(self, id, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) attributes (JsonApiOrganizationInAttributes): [optional] # noqa: E501 + relationships (JsonApiOrganizationInRelationships): [optional] # noqa: E501 """ type = kwargs.get('type', "organization") diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py index 03808a090..5cb21f051 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py @@ -76,9 +76,12 @@ class JsonApiOrganizationSettingInAttributes(ModelNormal): 'SEPARATORS': "SEPARATORS", 'DATE_FILTER_CONFIG': "DATE_FILTER_CONFIG", 'JIT_PROVISIONING': "JIT_PROVISIONING", + 'JWT_JIT_PROVISIONING': "JWT_JIT_PROVISIONING", 'DASHBOARD_FILTERS_APPLY_MODE': "DASHBOARD_FILTERS_APPLY_MODE", 'ENABLE_SLIDES_EXPORT': "ENABLE_SLIDES_EXPORT", 'AI_RATE_LIMIT': "AI_RATE_LIMIT", + 'ATTACHMENT_SIZE_LIMIT': "ATTACHMENT_SIZE_LIMIT", + 'ATTACHMENT_LINK_TTL': "ATTACHMENT_LINK_TTL", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/over.py b/gooddata-api-client/gooddata_api_client/model/over.py index dc7ed1d21..ddafbea07 100644 --- a/gooddata-api-client/gooddata_api_client/model/over.py +++ b/gooddata-api-client/gooddata_api_client/model/over.py @@ -30,6 +30,10 @@ from gooddata_api_client.exceptions import ApiAttributeError +def lazy_import(): + from gooddata_api_client.model.identifier_ref import IdentifierRef + globals()['IdentifierRef'] = IdentifierRef + class Over(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. @@ -67,6 +71,7 @@ def additional_properties_type(): This must be a method because a model may have properties that are of type self, this must run after the class is loaded """ + lazy_import() return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 _nullable = False @@ -81,8 +86,9 @@ def openapi_types(): openapi_types (dict): The key is attribute name and the value is attribute type. """ + lazy_import() return { - 'attributes': ([str],), # noqa: E501 + 'attributes': ([IdentifierRef],), # noqa: E501 } @cached_property @@ -105,7 +111,7 @@ def _from_openapi_data(cls, attributes, *args, **kwargs): # noqa: E501 """Over - a model defined in OpenAPI Args: - attributes ([str]): + attributes ([IdentifierRef]): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -194,7 +200,7 @@ def __init__(self, attributes, *args, **kwargs): # noqa: E501 """Over - a model defined in OpenAPI Args: - attributes ([str]): + attributes ([IdentifierRef]): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/resolved_setting.py b/gooddata-api-client/gooddata_api_client/model/resolved_setting.py index df144b751..a3d6fa785 100644 --- a/gooddata-api-client/gooddata_api_client/model/resolved_setting.py +++ b/gooddata-api-client/gooddata_api_client/model/resolved_setting.py @@ -80,9 +80,12 @@ class ResolvedSetting(ModelNormal): 'SEPARATORS': "SEPARATORS", 'DATE_FILTER_CONFIG': "DATE_FILTER_CONFIG", 'JIT_PROVISIONING': "JIT_PROVISIONING", + 'JWT_JIT_PROVISIONING': "JWT_JIT_PROVISIONING", 'DASHBOARD_FILTERS_APPLY_MODE': "DASHBOARD_FILTERS_APPLY_MODE", 'ENABLE_SLIDES_EXPORT': "ENABLE_SLIDES_EXPORT", 'AI_RATE_LIMIT': "AI_RATE_LIMIT", + 'ATTACHMENT_SIZE_LIMIT': "ATTACHMENT_SIZE_LIMIT", + 'ATTACHMENT_LINK_TTL': "ATTACHMENT_LINK_TTL", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/saved_visualization.py b/gooddata-api-client/gooddata_api_client/model/saved_visualization.py new file mode 100644 index 000000000..f97c45546 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/saved_visualization.py @@ -0,0 +1,276 @@ +""" + OpenAPI definition + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501 + + The version of the OpenAPI document: v0 + Contact: support@gooddata.com + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from gooddata_api_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from gooddata_api_client.exceptions import ApiAttributeError + + + +class SavedVisualization(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 { + 'created_visualization_id': (str,), # noqa: E501 + 'saved_visualization_id': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'created_visualization_id': 'createdVisualizationId', # noqa: E501 + 'saved_visualization_id': 'savedVisualizationId', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, created_visualization_id, saved_visualization_id, *args, **kwargs): # noqa: E501 + """SavedVisualization - a model defined in OpenAPI + + Args: + created_visualization_id (str): Created visualization ID. + saved_visualization_id (str): Saved visualization ID. + + 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.created_visualization_id = created_visualization_id + self.saved_visualization_id = saved_visualization_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, created_visualization_id, saved_visualization_id, *args, **kwargs): # noqa: E501 + """SavedVisualization - a model defined in OpenAPI + + Args: + created_visualization_id (str): Created visualization ID. + saved_visualization_id (str): Saved visualization ID. + + 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.created_visualization_id = created_visualization_id + self.saved_visualization_id = saved_visualization_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/settings.py b/gooddata-api-client/gooddata_api_client/model/settings.py index 4fbb83d7c..082eb4cde 100644 --- a/gooddata-api-client/gooddata_api_client/model/settings.py +++ b/gooddata-api-client/gooddata_api_client/model/settings.py @@ -88,6 +88,7 @@ def openapi_types(): """ lazy_import() return { + 'export_info': (bool,), # noqa: E501 'merge_headers': (bool,), # noqa: E501 'pdf_page_size': (str,), # noqa: E501 'pdf_table_style': ([PdfTableStyle],), # noqa: E501 @@ -102,6 +103,7 @@ def discriminator(): attribute_map = { + 'export_info': 'exportInfo', # noqa: E501 'merge_headers': 'mergeHeaders', # noqa: E501 'pdf_page_size': 'pdfPageSize', # noqa: E501 'pdf_table_style': 'pdfTableStyle', # noqa: E501 @@ -151,6 +153,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,) + export_info (bool): Include export info sheet in the exported file. Works only with `visualizationObject`. (XLSX). [optional] if omitted the server will use the default value of False # noqa: E501 merge_headers (bool): Merge equal headers in neighbouring cells. (XLSX). [optional] # noqa: E501 pdf_page_size (str): Page size and orientation. (PDF). [optional] # noqa: E501 pdf_table_style ([PdfTableStyle]): Custom CSS styles for the table. (PDF, HTML). [optional] # noqa: E501 @@ -242,6 +245,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,) + export_info (bool): Include export info sheet in the exported file. Works only with `visualizationObject`. (XLSX). [optional] if omitted the server will use the default value of False # noqa: E501 merge_headers (bool): Merge equal headers in neighbouring cells. (XLSX). [optional] # noqa: E501 pdf_page_size (str): Page size and orientation. (PDF). [optional] # noqa: E501 pdf_table_style ([PdfTableStyle]): Custom CSS styles for the table. (PDF, HTML). [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/test_definition_request.py b/gooddata-api-client/gooddata_api_client/model/test_definition_request.py index bc817186c..07222f543 100644 --- a/gooddata-api-client/gooddata_api_client/model/test_definition_request.py +++ b/gooddata-api-client/gooddata_api_client/model/test_definition_request.py @@ -80,6 +80,7 @@ class TestDefinitionRequest(ModelNormal): 'MYSQL': "MYSQL", 'MARIADB': "MARIADB", 'ORACLE': "ORACLE", + 'PINOT': "PINOT", 'SINGLESTORE': "SINGLESTORE", 'MOTHERDUCK': "MOTHERDUCK", 'FLEXCONNECT': "FLEXCONNECT", 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 7885944b3..05a7c1d8c 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 @@ -101,8 +101,11 @@ def openapi_types(): 'details': ({str: (str,)},), # noqa: E501 'filters': ([NotificationFilter],), # noqa: E501 'image_exports': ([ExportResult],), # noqa: E501 + 'notification_source': (str,), # noqa: E501 + 'raw_exports': ([ExportResult],), # noqa: E501 'recipients': ([WebhookRecipient],), # noqa: E501 'remaining_action_count': (int,), # noqa: E501 + 'slides_exports': ([ExportResult],), # noqa: E501 'tabular_exports': ([ExportResult],), # noqa: E501 'visual_exports': ([ExportResult],), # noqa: E501 } @@ -118,8 +121,11 @@ def discriminator(): 'details': 'details', # noqa: E501 'filters': 'filters', # noqa: E501 'image_exports': 'imageExports', # noqa: E501 + 'notification_source': 'notificationSource', # noqa: E501 + 'raw_exports': 'rawExports', # noqa: E501 'recipients': 'recipients', # noqa: E501 'remaining_action_count': 'remainingActionCount', # noqa: E501 + 'slides_exports': 'slidesExports', # noqa: E501 'tabular_exports': 'tabularExports', # noqa: E501 'visual_exports': 'visualExports', # noqa: E501 } @@ -172,8 +178,11 @@ def _from_openapi_data(cls, automation, *args, **kwargs): # noqa: E501 details ({str: (str,)}): [optional] # noqa: E501 filters ([NotificationFilter]): [optional] # noqa: E501 image_exports ([ExportResult]): [optional] # noqa: E501 + notification_source (str): [optional] # noqa: E501 + raw_exports ([ExportResult]): [optional] # noqa: E501 recipients ([WebhookRecipient]): [optional] # noqa: E501 remaining_action_count (int): [optional] # noqa: E501 + slides_exports ([ExportResult]): [optional] # noqa: E501 tabular_exports ([ExportResult]): [optional] # noqa: E501 visual_exports ([ExportResult]): [optional] # noqa: E501 """ @@ -269,8 +278,11 @@ def __init__(self, automation, *args, **kwargs): # noqa: E501 details ({str: (str,)}): [optional] # noqa: E501 filters ([NotificationFilter]): [optional] # noqa: E501 image_exports ([ExportResult]): [optional] # noqa: E501 + notification_source (str): [optional] # noqa: E501 + raw_exports ([ExportResult]): [optional] # noqa: E501 recipients ([WebhookRecipient]): [optional] # noqa: E501 remaining_action_count (int): [optional] # noqa: E501 + slides_exports ([ExportResult]): [optional] # noqa: E501 tabular_exports ([ExportResult]): [optional] # noqa: E501 visual_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 e5044cccf..1a42f7bf1 100644 --- a/gooddata-api-client/gooddata_api_client/models/__init__.py +++ b/gooddata-api-client/gooddata_api_client/models/__init__.py @@ -10,6 +10,7 @@ # sys.setrecursionlimit(n) from gooddata_api_client.model.afm import AFM +from gooddata_api_client.model.afm_filters_inner import AFMFiltersInner from gooddata_api_client.model.absolute_date_filter import AbsoluteDateFilter from gooddata_api_client.model.absolute_date_filter_absolute_date_filter import AbsoluteDateFilterAbsoluteDateFilter from gooddata_api_client.model.abstract_measure_value_filter import AbstractMeasureValueFilter @@ -47,6 +48,9 @@ from gooddata_api_client.model.arithmetic_measure_definition_arithmetic_measure import ArithmeticMeasureDefinitionArithmeticMeasure from gooddata_api_client.model.assignee_identifier import AssigneeIdentifier from gooddata_api_client.model.assignee_rule import AssigneeRule +from gooddata_api_client.model.attribute_elements import AttributeElements +from gooddata_api_client.model.attribute_elements_by_ref import AttributeElementsByRef +from gooddata_api_client.model.attribute_elements_by_value import AttributeElementsByValue from gooddata_api_client.model.attribute_execution_result_header import AttributeExecutionResultHeader from gooddata_api_client.model.attribute_filter import AttributeFilter from gooddata_api_client.model.attribute_filter_by_date import AttributeFilterByDate @@ -68,7 +72,9 @@ from gooddata_api_client.model.automation_metadata import AutomationMetadata from gooddata_api_client.model.automation_notification import AutomationNotification from gooddata_api_client.model.automation_notification_all_of import AutomationNotificationAllOf +from gooddata_api_client.model.automation_raw_export import AutomationRawExport from gooddata_api_client.model.automation_schedule import AutomationSchedule +from gooddata_api_client.model.automation_slides_export import AutomationSlidesExport from gooddata_api_client.model.automation_tabular_export import AutomationTabularExport from gooddata_api_client.model.automation_visual_export import AutomationVisualExport from gooddata_api_client.model.available_assignees import AvailableAssignees @@ -102,16 +108,15 @@ from gooddata_api_client.model.custom_override import CustomOverride from gooddata_api_client.model.dashboard_attribute_filter import DashboardAttributeFilter from gooddata_api_client.model.dashboard_attribute_filter_attribute_filter import DashboardAttributeFilterAttributeFilter -from gooddata_api_client.model.dashboard_attribute_filter_attribute_filter_all_of import DashboardAttributeFilterAttributeFilterAllOf from gooddata_api_client.model.dashboard_date_filter import DashboardDateFilter from gooddata_api_client.model.dashboard_date_filter_date_filter import DashboardDateFilterDateFilter -from gooddata_api_client.model.dashboard_date_filter_date_filter_all_of import DashboardDateFilterDateFilterAllOf +from gooddata_api_client.model.dashboard_date_filter_date_filter_from import DashboardDateFilterDateFilterFrom +from gooddata_api_client.model.dashboard_export_settings import DashboardExportSettings from gooddata_api_client.model.dashboard_filter import DashboardFilter from gooddata_api_client.model.dashboard_permissions import DashboardPermissions 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_dashboard_filters_override_inner import DashboardTabularExportRequestDashboardFiltersOverrideInner 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 @@ -126,6 +131,7 @@ from gooddata_api_client.model.date_filter import DateFilter from gooddata_api_client.model.date_relative_filter import DateRelativeFilter from gooddata_api_client.model.date_relative_filter_all_of import DateRelativeFilterAllOf +from gooddata_api_client.model.date_value import DateValue from gooddata_api_client.model.declarative_analytical_dashboard import DeclarativeAnalyticalDashboard from gooddata_api_client.model.declarative_analytical_dashboard_extension import DeclarativeAnalyticalDashboardExtension from gooddata_api_client.model.declarative_analytical_dashboard_identifier import DeclarativeAnalyticalDashboardIdentifier @@ -162,6 +168,7 @@ from gooddata_api_client.model.declarative_filter_context import DeclarativeFilterContext from gooddata_api_client.model.declarative_filter_view import DeclarativeFilterView from gooddata_api_client.model.declarative_identity_provider import DeclarativeIdentityProvider +from gooddata_api_client.model.declarative_identity_provider_identifier import DeclarativeIdentityProviderIdentifier from gooddata_api_client.model.declarative_jwk import DeclarativeJwk from gooddata_api_client.model.declarative_jwk_specification import DeclarativeJwkSpecification from gooddata_api_client.model.declarative_label import DeclarativeLabel @@ -180,6 +187,7 @@ from gooddata_api_client.model.declarative_rsa_specification import DeclarativeRsaSpecification from gooddata_api_client.model.declarative_setting import DeclarativeSetting from gooddata_api_client.model.declarative_single_workspace_permission import DeclarativeSingleWorkspacePermission +from gooddata_api_client.model.declarative_source_fact_reference import DeclarativeSourceFactReference from gooddata_api_client.model.declarative_table import DeclarativeTable from gooddata_api_client.model.declarative_tables import DeclarativeTables from gooddata_api_client.model.declarative_theme import DeclarativeTheme @@ -239,6 +247,7 @@ from gooddata_api_client.model.export_request import ExportRequest from gooddata_api_client.model.export_response import ExportResponse from gooddata_api_client.model.export_result import ExportResult +from gooddata_api_client.model.fact_identifier import FactIdentifier from gooddata_api_client.model.file import File from gooddata_api_client.model.filter import Filter from gooddata_api_client.model.filter_by import FilterBy @@ -261,6 +270,8 @@ from gooddata_api_client.model.histogram_bucket import HistogramBucket from gooddata_api_client.model.histogram_properties import HistogramProperties from gooddata_api_client.model.identifier_duplications import IdentifierDuplications +from gooddata_api_client.model.identifier_ref import IdentifierRef +from gooddata_api_client.model.identifier_ref_identifier import IdentifierRefIdentifier from gooddata_api_client.model.image_export_request import ImageExportRequest from gooddata_api_client.model.in_platform import InPlatform from gooddata_api_client.model.in_platform_all_of import InPlatformAllOf @@ -341,7 +352,9 @@ 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 +from gooddata_api_client.model.json_api_automation_in_attributes_raw_exports_inner import JsonApiAutomationInAttributesRawExportsInner from gooddata_api_client.model.json_api_automation_in_attributes_schedule import JsonApiAutomationInAttributesSchedule +from gooddata_api_client.model.json_api_automation_in_attributes_slides_exports_inner import JsonApiAutomationInAttributesSlidesExportsInner 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 from gooddata_api_client.model.json_api_automation_in_document import JsonApiAutomationInDocument @@ -493,10 +506,13 @@ from gooddata_api_client.model.json_api_fact_out import JsonApiFactOut from gooddata_api_client.model.json_api_fact_out_attributes import JsonApiFactOutAttributes from gooddata_api_client.model.json_api_fact_out_document import JsonApiFactOutDocument +from gooddata_api_client.model.json_api_fact_out_includes import JsonApiFactOutIncludes from gooddata_api_client.model.json_api_fact_out_list import JsonApiFactOutList from gooddata_api_client.model.json_api_fact_out_relationships import JsonApiFactOutRelationships +from gooddata_api_client.model.json_api_fact_out_relationships_source_fact import JsonApiFactOutRelationshipsSourceFact from gooddata_api_client.model.json_api_fact_out_with_links import JsonApiFactOutWithLinks from gooddata_api_client.model.json_api_fact_to_many_linkage import JsonApiFactToManyLinkage +from gooddata_api_client.model.json_api_fact_to_one_linkage import JsonApiFactToOneLinkage from gooddata_api_client.model.json_api_filter_context_in import JsonApiFilterContextIn from gooddata_api_client.model.json_api_filter_context_in_document import JsonApiFilterContextInDocument from gooddata_api_client.model.json_api_filter_context_linkage import JsonApiFilterContextLinkage @@ -527,6 +543,7 @@ from gooddata_api_client.model.json_api_identity_provider_in import JsonApiIdentityProviderIn from gooddata_api_client.model.json_api_identity_provider_in_attributes import JsonApiIdentityProviderInAttributes from gooddata_api_client.model.json_api_identity_provider_in_document import JsonApiIdentityProviderInDocument +from gooddata_api_client.model.json_api_identity_provider_linkage import JsonApiIdentityProviderLinkage from gooddata_api_client.model.json_api_identity_provider_out import JsonApiIdentityProviderOut from gooddata_api_client.model.json_api_identity_provider_out_attributes import JsonApiIdentityProviderOutAttributes from gooddata_api_client.model.json_api_identity_provider_out_document import JsonApiIdentityProviderOutDocument @@ -535,6 +552,7 @@ 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 from gooddata_api_client.model.json_api_jwk_in_attributes import JsonApiJwkInAttributes from gooddata_api_client.model.json_api_jwk_in_attributes_content import JsonApiJwkInAttributesContent @@ -584,6 +602,11 @@ from gooddata_api_client.model.json_api_metric_post_optional_id import JsonApiMetricPostOptionalId from gooddata_api_client.model.json_api_metric_post_optional_id_document import JsonApiMetricPostOptionalIdDocument from gooddata_api_client.model.json_api_metric_to_many_linkage import JsonApiMetricToManyLinkage +from gooddata_api_client.model.json_api_notification_channel_identifier_out import JsonApiNotificationChannelIdentifierOut +from gooddata_api_client.model.json_api_notification_channel_identifier_out_attributes import JsonApiNotificationChannelIdentifierOutAttributes +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_identifier_out_with_links import JsonApiNotificationChannelIdentifierOutWithLinks from gooddata_api_client.model.json_api_notification_channel_in import JsonApiNotificationChannelIn from gooddata_api_client.model.json_api_notification_channel_in_attributes import JsonApiNotificationChannelInAttributes from gooddata_api_client.model.json_api_notification_channel_in_attributes_destination import JsonApiNotificationChannelInAttributesDestination @@ -602,6 +625,8 @@ 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_api_client.model.json_api_organization_out import JsonApiOrganizationOut from gooddata_api_client.model.json_api_organization_out_attributes import JsonApiOrganizationOutAttributes from gooddata_api_client.model.json_api_organization_out_attributes_cache_settings import JsonApiOrganizationOutAttributesCacheSettings @@ -838,6 +863,7 @@ from gooddata_api_client.model.rsa_specification import RsaSpecification from gooddata_api_client.model.rule_permission import RulePermission from gooddata_api_client.model.running_section import RunningSection +from gooddata_api_client.model.saved_visualization import SavedVisualization from gooddata_api_client.model.scan_request import ScanRequest from gooddata_api_client.model.scan_result_pdm import ScanResultPdm from gooddata_api_client.model.scan_sql_request import ScanSqlRequest diff --git a/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/llm_endpoint.py b/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/llm_endpoint.py index 4ac0b76c7..24dbd9295 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/llm_endpoint.py +++ b/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/llm_endpoint.py @@ -48,7 +48,6 @@ def init( id: str, title: str, token: str, - description: Optional[str] = None, provider: Optional[str] = None, base_url: Optional[str] = None, llm_organization: Optional[str] = None, @@ -59,7 +58,6 @@ def init( attributes=CatalogLlmEndpointAttributes( title=title, token=token, - description=description, provider=provider, base_url=base_url, llm_organization=llm_organization, @@ -73,7 +71,6 @@ def from_api(cls, entity: dict[str, Any]) -> CatalogLlmEndpoint: attr = CatalogLlmEndpointAttributes( title=safeget(ea, ["title"]), token="", # Token is not returned for security reasons - description=safeget(ea, ["description"]), provider=safeget(ea, ["provider"]), base_url=safeget(ea, ["baseUrl"]), llm_organization=safeget(ea, ["llmOrganization"]), @@ -100,7 +97,6 @@ def init( id: str, title: Optional[str] = None, token: Optional[str] = None, - description: Optional[str] = None, provider: Optional[str] = None, base_url: Optional[str] = None, llm_organization: Optional[str] = None, @@ -111,7 +107,6 @@ def init( attributes=CatalogLlmEndpointPatchAttributes( title=title, token=token, - description=description, provider=provider, base_url=base_url, llm_organization=llm_organization, @@ -124,7 +119,6 @@ def init( class CatalogLlmEndpointAttributes(Base): title: str token: str - description: Optional[str] = None provider: Optional[str] = None base_url: Optional[str] = None llm_organization: Optional[str] = None @@ -139,7 +133,6 @@ def client_class() -> type[JsonApiLlmEndpointInAttributes]: class CatalogLlmEndpointPatchAttributes(Base): title: Optional[str] = None token: Optional[str] = None - description: Optional[str] = None provider: Optional[str] = None base_url: Optional[str] = None llm_organization: Optional[str] = None diff --git a/gooddata-sdk/gooddata_sdk/catalog/organization/service.py b/gooddata-sdk/gooddata_sdk/catalog/organization/service.py index bde8f89c1..21f919f13 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/organization/service.py +++ b/gooddata-sdk/gooddata_sdk/catalog/organization/service.py @@ -574,7 +574,6 @@ def create_llm_endpoint( id: str, title: str, token: str, - description: Optional[str] = None, provider: Optional[str] = None, base_url: Optional[str] = None, llm_organization: Optional[str] = None, @@ -587,7 +586,6 @@ def create_llm_endpoint( id: Identifier of the LLM endpoint title: User-facing title of the LLM Provider token: The token to use to connect to the LLM provider - description: Optional user-facing description of the LLM endpoint provider: Optional LLM provider name (e.g., "openai") base_url: Optional base URL for custom LLM endpoint llm_organization: Optional LLM organization identifier @@ -600,7 +598,6 @@ def create_llm_endpoint( id=id, title=title, token=token, - description=description, provider=provider, base_url=base_url, llm_organization=llm_organization, @@ -617,7 +614,6 @@ def update_llm_endpoint( id: str, title: Optional[str] = None, token: Optional[str] = None, - description: Optional[str] = None, provider: Optional[str] = None, base_url: Optional[str] = None, llm_organization: Optional[str] = None, @@ -630,7 +626,6 @@ def update_llm_endpoint( id: Identifier of the LLM endpoint title: User-facing title of the LLM Provider token: The token to use to connect to the LLM provider. If not provided, the existing token will be preserved. - description: User-facing description of the LLM endpoint provider: LLM provider name (e.g., "openai") base_url: Base URL for custom LLM endpoint llm_organization: LLM organization identifier @@ -643,7 +638,6 @@ def update_llm_endpoint( id=id, title=title, token=token, - description=description, provider=provider, base_url=base_url, llm_organization=llm_organization, diff --git a/gooddata-sdk/gooddata_sdk/compute/service.py b/gooddata-sdk/gooddata_sdk/compute/service.py index 1de3089d2..64d2e31b3 100644 --- a/gooddata-sdk/gooddata_sdk/compute/service.py +++ b/gooddata-sdk/gooddata_sdk/compute/service.py @@ -12,6 +12,7 @@ from gooddata_api_client.model.chat_history_result import ChatHistoryResult from gooddata_api_client.model.chat_request import ChatRequest from gooddata_api_client.model.chat_result import ChatResult +from gooddata_api_client.model.saved_visualization import SavedVisualization from gooddata_api_client.model.search_request import SearchRequest from gooddata_api_client.model.search_result import SearchResult @@ -230,6 +231,36 @@ def set_ai_chat_history_feedback( ) self._actions_api.ai_chat_history(workspace_id, chat_history_request, _check_return_type=False) + def set_ai_chat_history_saved_visualization( + self, + workspace_id: str, + created_visualization_id: str, + saved_visualization_id: str, + chat_history_interaction_id: str, + thread_id_suffix: str = "", + ) -> None: + """ + Set saved visualization for a specific chat history interaction. + + Args: + workspace_id (str): workspace identifier + created_visualization_id (str): id of the created visualization + saved_visualization_id (str): id of the saved visualization + chat_history_interaction_id (str): interaction id to set saved visualization for. + thread_id_suffix (str): suffix to identify a specific chat thread. Defaults to "". + """ + saved_visualization = SavedVisualization( + created_visualization_id=created_visualization_id, + saved_visualization_id=saved_visualization_id, + ) + chat_history_request = ChatHistoryRequest( + saved_visualization=saved_visualization, + chat_history_interaction_id=chat_history_interaction_id, + thread_id_suffix=thread_id_suffix, + reset=False, + ) + self._actions_api.ai_chat_history(workspace_id, chat_history_request, _check_return_type=False) + def search_ai( self, workspace_id: str, diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/create_llm_endpoint.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/create_llm_endpoint.yaml index 4adcfaed9..74f0fb6ac 100644 --- a/gooddata-sdk/tests/catalog/fixtures/organization/create_llm_endpoint.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/organization/create_llm_endpoint.yaml @@ -75,7 +75,6 @@ interactions: attributes: title: Test Endpoint 2 token: secret-token-2 - description: Test Description provider: OPENAI baseUrl: https://api.example.com llmOrganization: org1 diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/delete_llm_endpoint.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/delete_llm_endpoint.yaml index 912e04d07..5f8504a35 100644 --- a/gooddata-sdk/tests/catalog/fixtures/organization/delete_llm_endpoint.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/organization/delete_llm_endpoint.yaml @@ -161,7 +161,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: af6c2c610c999d92ae5b97820b9370cb + traceId: 85a65755a01301cfc27020eabbbdf90a - request: method: DELETE uri: http://localhost:3000/api/v1/entities/llmEndpoints/endpoint1 diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/update_llm_endpoint.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/update_llm_endpoint.yaml index db18ac255..2a657c6c8 100644 --- a/gooddata-sdk/tests/catalog/fixtures/organization/update_llm_endpoint.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/organization/update_llm_endpoint.yaml @@ -139,7 +139,6 @@ interactions: attributes: title: Updated Title 2 token: new-token - description: Updated Description provider: OPENAI baseUrl: https://api.updated.com llmOrganization: org2 diff --git a/gooddata-sdk/tests/catalog/test_catalog_organization.py b/gooddata-sdk/tests/catalog/test_catalog_organization.py index 632ddb1ee..b0c86ec64 100644 --- a/gooddata-sdk/tests/catalog/test_catalog_organization.py +++ b/gooddata-sdk/tests/catalog/test_catalog_organization.py @@ -464,7 +464,6 @@ def test_create_llm_endpoint(test_config): full_id = "endpoint2" full_title = "Test Endpoint 2" full_token = "secret-token-2" - full_description = "Test Description" full_provider = "OPENAI" full_base_url = "https://api.example.com" full_llm_org = "org1" @@ -474,7 +473,6 @@ def test_create_llm_endpoint(test_config): id=full_id, title=full_title, token=full_token, - description=full_description, provider=full_provider, base_url=full_base_url, llm_organization=full_llm_org, @@ -485,8 +483,6 @@ def test_create_llm_endpoint(test_config): assert llm_endpoint_2.attributes.title == full_title # Token is not returned in the API response for security reasons assert not llm_endpoint_2.attributes.token - # Description is not returned in the API response. TODO: Check if this is correct. - # assert llm_endpoint_2.attributes.description == full_description assert llm_endpoint_2.attributes.provider == full_provider assert llm_endpoint_2.attributes.base_url == full_base_url assert llm_endpoint_2.attributes.llm_organization == full_llm_org @@ -523,7 +519,6 @@ def test_update_llm_endpoint(test_config): # Test with all optional parameters full_title = "Updated Title 2" full_token = "new-token" - full_description = "Updated Description" full_provider = "OPENAI" full_base_url = "https://api.updated.com" full_llm_org = "org2" @@ -533,7 +528,6 @@ def test_update_llm_endpoint(test_config): id=initial_id, title=full_title, token=full_token, - description=full_description, provider=full_provider, base_url=full_base_url, llm_organization=full_llm_org, @@ -545,8 +539,6 @@ def test_update_llm_endpoint(test_config): assert llm_endpoint_2.attributes.title == full_title # Token is not returned in the API response for security reasons assert not llm_endpoint_2.attributes.token - # Description is not returned in the API response. TODO: Check if this is correct. - # assert llm_endpoint_2.attributes.description == full_description assert llm_endpoint_2.attributes.provider == full_provider assert llm_endpoint_2.attributes.base_url == full_base_url assert llm_endpoint_2.attributes.llm_organization == full_llm_org @@ -562,8 +554,6 @@ def test_update_llm_endpoint(test_config): # Token is not returned in the API response for security reasons assert not llm_endpoint_3.attributes.token # Verify other fields are preserved - # Description is not returned in the API response. TODO: Check if this is correct. - # assert llm_endpoint_3.attributes.description == full_description assert llm_endpoint_3.attributes.provider == full_provider assert llm_endpoint_3.attributes.base_url == full_base_url assert llm_endpoint_3.attributes.llm_organization == full_llm_org diff --git a/gooddata-sdk/tests/compute/fixtures/set_ai_chat_history_saved_visualization.yaml b/gooddata-sdk/tests/compute/fixtures/set_ai_chat_history_saved_visualization.yaml new file mode 100644 index 000000000..bbb4b5739 --- /dev/null +++ b/gooddata-sdk/tests/compute/fixtures/set_ai_chat_history_saved_visualization.yaml @@ -0,0 +1,2270 @@ +# (C) 2025 GoodData Corporation +version: 1 +interactions: + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo_testing?include=workspaces + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 404 + message: Not Found + headers: + Content-Length: + - '0' + DATE: &id001 + - PLACEHOLDER + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo_testing?include=workspaces + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 404 + message: Not Found + headers: + Content-Length: + - '0' + DATE: *id001 + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + body: + string: '' + - request: + method: POST + uri: http://localhost:3000/api/v1/entities/workspaces + body: + data: + id: demo_testing + type: workspace + attributes: + name: demo_testing + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/vnd.gooddata.api+json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 201 + message: Created + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '167' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + Referrer-Policy: + - same-origin + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + body: + string: + data: + id: demo_testing + type: workspace + attributes: + name: demo_testing + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo_testing + - request: + method: PUT + uri: http://localhost:3000/api/v1/layout/workspaces/demo_testing/logicalModel + body: + ldm: + datasets: + - grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sources: + - column: campaign_id + target: + id: campaign_id + type: attribute + dataType: INT + title: Campaign channels + description: Campaign channels + attributes: + - id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + title: Campaign channel id + sourceColumnDataType: STRING + description: Campaign channel id + tags: + - Campaign channels + - id: campaign_channels.category + labels: [] + sourceColumn: category + title: Category + sourceColumnDataType: STRING + description: Category + tags: + - Campaign channels + - id: type + labels: [] + sourceColumn: type + title: Type + sourceColumnDataType: STRING + description: Type + tags: + - Campaign channels + facts: + - id: budget + sourceColumn: budget + title: Budget + sourceColumnDataType: NUMERIC + description: Budget + tags: + - Campaign channels + - id: spend + sourceColumn: spend + title: Spend + sourceColumnDataType: NUMERIC + description: Spend + tags: + - Campaign channels + dataSourceTableId: + dataSourceId: pg_local_docker-demo + id: campaign_channels + type: dataSource + path: + - demo_6d9051d9069a8468 + - campaign_channels + tags: + - Campaign channels + - grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + title: Campaigns + description: Campaigns + attributes: + - id: campaign_id + labels: [] + sourceColumn: campaign_id + title: Campaign id + sourceColumnDataType: INT + description: Campaign id + tags: + - Campaigns + - id: campaign_name + labels: [] + sourceColumn: campaign_name + title: Campaign name + sourceColumnDataType: STRING + description: Campaign name + tags: + - Campaigns + facts: [] + dataSourceTableId: + dataSourceId: pg_local_docker-demo + id: campaigns + type: dataSource + path: + - demo_6d9051d9069a8468 + - campaigns + tags: + - Campaigns + - grain: + - id: customer_id + type: attribute + id: customers + references: [] + title: Customers + description: Customers + attributes: + - id: customer_id + labels: [] + sourceColumn: customer_id + title: Customer id + sourceColumnDataType: INT + description: Customer id + tags: + - Customers + - id: customer_name + labels: [] + sourceColumn: customer_name + title: Customer name + sourceColumnDataType: STRING + description: Customer name + tags: + - Customers + - id: region + labels: [] + sourceColumn: region + title: Region + sourceColumnDataType: STRING + description: Region + tags: + - Customers + - id: state + labels: + - id: geo__state__location + sourceColumn: geo__state__location + title: Location + sourceColumnDataType: STRING + description: Location + tags: + - Customers + sourceColumn: state + title: State + sourceColumnDataType: STRING + description: State + tags: + - Customers + facts: [] + dataSourceTableId: + dataSourceId: pg_local_docker-demo + id: customers + type: dataSource + path: + - demo_6d9051d9069a8468 + - customers + tags: + - Customers + - grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sources: + - column: campaign_id + target: + id: campaign_id + type: attribute + dataType: INT + - identifier: + id: customers + type: dataset + multivalue: false + sources: + - column: customer_id + target: + id: customer_id + type: attribute + dataType: INT + - identifier: + id: date + type: dataset + multivalue: false + sources: + - column: date + target: + id: date + type: date + dataType: DATE + - identifier: + id: products + type: dataset + multivalue: false + sources: + - column: product_id + target: + id: product_id + type: attribute + dataType: INT + title: Order lines + description: Order lines + attributes: + - id: order_id + labels: [] + sourceColumn: order_id + title: Order id + sourceColumnDataType: STRING + description: Order id + tags: + - Order lines + - id: order_line_id + labels: [] + sourceColumn: order_line_id + title: Order line id + sourceColumnDataType: STRING + description: Order line id + tags: + - Order lines + - id: order_status + labels: [] + sourceColumn: order_status + title: Order status + sourceColumnDataType: STRING + description: Order status + tags: + - Order lines + facts: + - id: price + sourceColumn: price + title: Price + sourceColumnDataType: NUMERIC + description: Price + tags: + - Order lines + - id: quantity + sourceColumn: quantity + title: Quantity + sourceColumnDataType: NUMERIC + description: Quantity + tags: + - Order lines + dataSourceTableId: + dataSourceId: pg_local_docker-demo + id: order_lines + type: dataSource + path: + - demo_6d9051d9069a8468 + - order_lines + tags: + - Order lines + workspaceDataFilterColumns: + - dataType: STRING + name: wdf__region + - dataType: STRING + name: wdf__state + - grain: + - id: product_id + type: attribute + id: products + references: [] + title: Products + description: Products + attributes: + - id: product_id + labels: [] + sourceColumn: product_id + title: Product id + sourceColumnDataType: INT + description: Product id + tags: + - Products + - id: product_name + labels: [] + sourceColumn: product_name + title: Product name + sourceColumnDataType: STRING + description: Product name + tags: + - Products + - id: products.category + labels: [] + sourceColumn: category + title: Category + sourceColumnDataType: STRING + description: Category + tags: + - Products + facts: [] + dataSourceTableId: + dataSourceId: pg_local_docker-demo + id: products + type: dataSource + path: + - demo_6d9051d9069a8468 + - products + tags: + - Products + dateInstances: + - granularities: + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + title: Date + description: '' + tags: + - Date + headers: + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + Referrer-Policy: + - same-origin + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + body: + string: '' + - request: + method: PUT + uri: http://localhost:3000/api/v1/layout/workspaces/demo_testing/analyticsModel + body: + analytics: + analyticalDashboards: + - content: + filterContextRef: + identifier: + id: 4717b786-2c2e-4596-adb5-4f8b0ab0e19a + type: filterContext + layout: + sections: + - header: + description: All in one description + title: All in one title + items: + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: top_10_customers + type: visualizationObject + localIdentifier: 2c7400ac-5f63-46f8-aa12-a2debe13fd14 + properties: {} + title: Top 10 Customers + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: revenue_by_product + type: visualizationObject + localIdentifier: a50daab7-fb78-45eb-a2b4-d5cc8cbd89e9 + properties: {} + title: Revenue by Product + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: revenue_by_category_trend + type: visualizationObject + localIdentifier: efccc783-5896-4eb6-890f-2e51ece3f159 + properties: {} + title: Revenue by Category Trend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_saleability + type: visualizationObject + localIdentifier: d738d85f-e935-4e2c-b8b4-a8b456f55079 + properties: {} + title: Product Saleability + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_categories_pie_chart + type: visualizationObject + localIdentifier: 8c194c85-bad6-42da-b4e3-08d270278316 + properties: {} + title: Product Categories Pie Chart + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: percentage_of_customers_by_region + type: visualizationObject + localIdentifier: 2c3307b2-581f-4bab-9252-6b5279565b24 + properties: {} + title: Percentage of Customers by Region + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: customers_trend + type: visualizationObject + localIdentifier: 87505bb0-d954-4add-811d-f4e75e431660 + properties: {} + title: Customers Trend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: campaign_spend + type: visualizationObject + localIdentifier: 0cb01f6a-6ea6-4c22-bb12-ded00a9eac66 + properties: {} + title: Campaign Spend + type: insight + - size: + xl: + gridWidth: 12 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: percent_revenue_per_product_by_customer_and_category + type: visualizationObject + localIdentifier: 2213d6e4-6df7-458e-806d-f02bae5ce66a + properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout + version: '2' + id: b2f2d436-9831-4fe0-81df-8c59fd33242b + title: All visualizations 1 with custom filter + description: '' + analyticalDashboardExtensions: [] + attributeHierarchies: [] + dashboardPlugins: [] + filterContexts: + - content: + filters: + - attributeFilter: + attributeElements: + uris: + - Biolid + - ChalkTalk + - Compglass + - Elentrix + displayForm: + identifier: + id: product_name + type: label + filterElementsBy: [] + localIdentifier: 6b94bbb585d44c79967867719e524fae + negativeSelection: false + selectionMode: multi + version: '2' + id: 4717b786-2c2e-4596-adb5-4f8b0ab0e19a + title: filterContext + description: '' + - content: + filters: + - dateFilter: + from: '0' + granularity: GDC.time.year + to: '0' + type: relative + version: '2' + id: 9f2b1f37-befa-450e-a6cc-dc576845c412 + title: filterContext + description: '' + metrics: + - content: + format: '#,##0' + maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) + id: amount_of_active_customers + title: '# of Active Customers' + description: '' + - content: + format: '#,##0' + maql: SELECT COUNT({attribute/order_id}) + id: amount_of_orders + title: '# of Orders' + description: '' + - content: + format: '#,##0' + maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} + BY {attribute/customer_id}) > 10000 ' + id: amount_of_top_customers + title: '# of Top Customers' + description: '' + - content: + format: '#,##0.00' + maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} + IN ("null", "Returned", "Canceled")) + id: amount_of_valid_orders + title: '# of Valid Orders' + description: '' + - content: + format: $#,##0 + maql: SELECT SUM({fact/spend}) + id: campaign_spend + title: Campaign Spend + description: '' + - content: + format: $#,##0 + maql: SELECT SUM({fact/price}*{fact/quantity}) + id: order_amount + title: Order Amount + description: '' + - content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / {metric/total_revenue} + id: percent_revenue + title: '% Revenue' + description: '' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ + \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + description: '' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ + \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + description: '' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ + \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + description: '' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ + \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + description: '' + - content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, + ALL OTHER) + id: percent_revenue_in_category + title: '% Revenue in Category' + description: '' + - content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) + id: percent_revenue_per_product + title: '% Revenue per Product' + description: '' + - content: + format: $#,##0 + maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} + IN ("null", "Returned", "Canceled")) + id: revenue + title: Revenue + description: '' + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") + id: revenue-clothing + title: Revenue (Clothing) + description: '' + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( + "Electronics") + id: revenue-electronic + title: Revenue (Electronic) + description: '' + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") + id: revenue-home + title: Revenue (Home) + description: '' + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") + id: revenue-outdoor + title: Revenue (Outdoor) + description: '' + - content: + format: $#,##0.0 + maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) + id: revenue_per_customer + title: Revenue per Customer + description: '' + - content: + format: $#,##0.0 + maql: SELECT {metric/revenue} / {metric/campaign_spend} + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + description: '' + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) + id: revenue_top_10 + title: Revenue / Top 10 + description: '' + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) + id: revenue_top_10_percent + title: Revenue / Top 10% + description: '' + - content: + format: $#,##0 + maql: SELECT {metric/revenue} BY ALL OTHER + id: total_revenue + title: Total Revenue + description: '' + - content: + format: $#,##0 + maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) + description: '' + visualizationObjects: + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: campaign_spend + type: metric + localIdentifier: d319bcb2d8c04442a684e3b3cd063381 + title: Campaign Spend + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: campaign_channels.category + type: label + localIdentifier: 291c085e7df8420db84117ca49f59c49 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: campaign_name + type: label + localIdentifier: d9dd143d647d4d148405a60ec2cf59bc + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: type + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_channels.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_name + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:treemap + id: campaign_spend + title: Campaign Spend + description: '' + - content: + buckets: + - items: + - measure: + alias: Active Customers + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: amount_of_active_customers + type: metric + localIdentifier: 2ba0b87b59ca41a4b1530e81a5c1d081 + title: '# of Active Customers' + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_per_customer + type: metric + localIdentifier: ec0606894b9f4897b7beaf1550608928 + title: Revenue per Customer + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 0de7d7f08af7480aa636857a26be72b6 + localIdentifier: view + filters: + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + properties: + controls: + colorMapping: + - color: + type: guid + value: '20' + id: 2ba0b87b59ca41a4b1530e81a5c1d081 + - color: + type: guid + value: '4' + id: ec0606894b9f4897b7beaf1550608928 + dualAxis: true + legend: + position: bottom + primaryChartType: column + secondaryChartType: line + secondary_yaxis: + measures: + - ec0606894b9f4897b7beaf1550608928 + xaxis: + name: + visible: false + rotation: auto + version: '2' + visualizationUrl: local:combo2 + id: customers_trend + title: Customers Trend + description: '' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: percent_revenue_per_product + type: metric + localIdentifier: 08d8346c1ce7438994b251991c0fbf65 + title: '% Revenue per Product' + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: b2350c06688b4da9b3833ebcce65527f + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: customer_name + type: label + localIdentifier: 7a4045fd00ac44579f52406df679435f + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 6a003ffd14994237ba64c4a02c488429 + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 75ea396d0c8b48098e31dccf8b5801d3 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: + sortItems: + - attributeSortItem: + attributeIdentifier: 7a4045fd00ac44579f52406df679435f + direction: asc + version: '2' + visualizationUrl: local:table + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + description: '' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: amount_of_active_customers + type: metric + localIdentifier: 1a14cdc1293c46e89a2e25d3e741d235 + title: '# of Active Customers' + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: c1feca1864244ec2ace7a9b9d7fda231 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: region + type: label + localIdentifier: 530cddbd7ca04d039e73462d81ed44d5 + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: region + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + properties: + controls: + legend: + position: bottom + stackMeasuresToPercent: true + version: '2' + visualizationUrl: local:area + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + description: '' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 590d332ef686468b8878ae41b23341c6 + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: b166c71091864312a14c7ae8ff886ffe + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: e920a50e0bbb49788df0aac53634c1cd + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:treemap + id: product_breakdown + title: Product Breakdown + description: '' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + computeRatio: true + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 162b857af49d45769bc12604a5c192b9 + title: '% Revenue' + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: fe513cef1c6244a5ac21c5f49c56b108 + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + dataLabels: + visible: auto + legend: + position: bottom + version: '2' + visualizationUrl: local:donut + id: product_categories_pie_chart + title: Product Categories Pie Chart + description: '' + - content: + buckets: + - items: + - measure: + alias: Previous Period + definition: + popMeasureDefinition: + measureIdentifier: c82e025fa2db4afea9a600a424591dbe + popAttribute: + identifier: + id: date.year + type: label + localIdentifier: c82e025fa2db4afea9a600a424591dbe_pop + - measure: + alias: This Period + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: c82e025fa2db4afea9a600a424591dbe + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: c804ef5ba7944a5a9f360c86a9e95e9a + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + stackMeasures: false + xaxis: + name: + visible: false + yaxis: + name: + visible: false + version: '2' + visualizationUrl: local:column + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + description: '' + - content: + buckets: + - items: + - measure: + alias: Number of Orders + definition: + measureDefinition: + filters: [] + item: + identifier: + id: amount_of_orders + type: metric + localIdentifier: aeb5d51a162d4b59aba3bd6ddebcc780 + title: '# of Orders' + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 94b3edd3a73c4a48a4d13bbe9442cc98 + title: Revenue + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: d2a991bdd123448eb2be73d79f1180c4 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: + controls: + dataLabels: + visible: auto + grid: + enabled: true + version: '2' + visualizationUrl: local:scatter + id: product_saleability + title: Product Saleability + description: '' + - content: + buckets: + - items: + - measure: + alias: Items Sold + definition: + measureDefinition: + aggregation: sum + filters: [] + item: + identifier: + id: quantity + type: fact + format: '#,##0.00' + localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 + title: Sum of Quantity + - measure: + definition: + measureDefinition: + aggregation: avg + filters: [] + item: + identifier: + id: price + type: fact + format: '#,##0.00' + localIdentifier: aa6391acccf1452f8011201aef9af492 + title: Avg Price + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: percent_revenue_in_category + type: metric + localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 + title: '% Revenue in Category' + - measure: + alias: Total Revenue + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 06bc6b3b9949466494e4f594c11f1bff + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + sortItems: + - attributeSortItem: + attributeIdentifier: 06bc6b3b9949466494e4f594c11f1bff + direction: asc + version: '2' + visualizationUrl: local:table + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + description: '' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 7df6c34387744d69b23ec92e1a5cf543 + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 4bb4fc1986c546de9ad976e6ec23fed4 + localIdentifier: trend + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 34bddcb1cd024902a82396216b0fa9d8 + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + granularity: GDC.time.year + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:line + id: revenue_by_category_trend + title: Revenue by Category Trend + description: '' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 4ae3401bdbba4938afe983df4ba04e1c + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 1c8ba72dbfc84ddd913bf81dc355c427 + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: {} + version: '2' + visualizationUrl: local:bar + id: revenue_by_product + title: Revenue by Product + description: '' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: campaign_spend + type: metric + localIdentifier: 13a50d811e474ac6808d8da7f4673b35 + title: Campaign Spend + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_per_dollar_spent + type: metric + localIdentifier: a0f15e82e6334280a44dbedc7d086e7c + title: Revenue per Dollar Spent + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: campaign_name + type: label + localIdentifier: 1d9fa968bafb423eb29c938dfb1207ff + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_name + type: label + notIn: + values: [] + properties: + controls: + xaxis: + min: '0' + yaxis: + min: '0' + version: '2' + visualizationUrl: local:scatter + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + description: '' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 60c854969a9c4c278ab596d99c222e92 + title: Revenue + localIdentifier: measures + - items: + - measure: + alias: Number of Orders + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: amount_of_orders + type: metric + localIdentifier: c2fa7ef48cc54af99f8c280eb451e051 + title: '# of Orders' + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 413ac374b65648fa96826ca01d47bdda + localIdentifier: view + filters: + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -3 + granularity: GDC.time.quarter + to: 0 + properties: + controls: + dualAxis: true + legend: + position: bottom + primaryChartType: column + secondaryChartType: line + secondary_yaxis: + measures: + - c2fa7ef48cc54af99f8c280eb451e051 + xaxis: + name: + visible: false + rotation: auto + version: '2' + visualizationUrl: local:combo2 + id: revenue_trend + title: Revenue Trend + description: '' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_top_10 + type: metric + localIdentifier: 3f127ccfe57a40399e23f9ae2a4ad810 + title: Revenue / Top 10 + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: customer_name + type: label + localIdentifier: f4e39e24f11e4827a191c30d65c89d2c + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: state + type: label + localIdentifier: bbccd430176d428caed54c99afc9589e + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: state + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:bar + id: top_10_customers + title: Top 10 Customers + description: '' + - content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_top_10 + type: metric + localIdentifier: 77dc71bbac92412bac5f94284a5919df + title: Revenue / Top 10 + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 781952e728204dcf923142910cc22ae2 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: fe513cef1c6244a5ac21c5f49c56b108 + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:bar + id: top_10_products + title: Top 10 Products + description: '' + exportDefinitions: [] + headers: + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + Referrer-Policy: + - same-origin + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + body: + string: '' + - request: + method: POST + uri: http://localhost:3000/api/v1/actions/workspaces/demo_testing/ai/chat + body: + question: Show revenue + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '752' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=63072000; includeSubDomains + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - '0' + body: + string: + routing: + useCase: CREATE_VISUALIZATION + reasoning: Creating a new visualization ... + createdVisualizations: + objects: + - id: total_revenue + title: Total Revenue + visualizationType: HEADLINE + metrics: + - id: net_sales + type: metric + title: Net Sales + dimensionality: [] + filters: [] + suggestions: + - query: Switch to a bar chart to compare revenue across different + categories + label: Switch to a bar chart + - query: Add a time dimension to see revenue trends over time + label: Add time dimension + savedVisualizationId: '' + reasoning: ' + + + + + + Here is a headline showing the Total Revenue: + + - Metrics: Net Sales + + - Attributes: None + + - Filter: None + + + ' + chatHistoryInteractionId: 77a295c2410f4404acfbe51ee5a45ecd + - request: + method: POST + uri: http://localhost:3000/api/v1/actions/workspaces/demo_testing/ai/chatHistory + body: + savedVisualization: + createdVisualizationId: total_revenue + savedVisualizationId: some_saved_visualization_id + chatHistoryInteractionId: 77a295c2410f4404acfbe51ee5a45ecd + threadIdSuffix: '' + reset: false + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '71' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=63072000; includeSubDomains + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - '0' + body: + string: + interactions: [] + threadId: demo_testing.demo. + - request: + method: POST + uri: http://localhost:3000/api/v1/actions/workspaces/demo_testing/ai/chatHistory + body: + chatHistoryInteractionId: '' + reset: false + threadIdSuffix: '' + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '943' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=63072000; includeSubDomains + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - '0' + body: + string: + interactions: + - question: Show revenue + chatHistoryInteractionId: 77a295c2410f4404acfbe51ee5a45ecd + interactionFinished: true + routing: + useCase: CREATE_VISUALIZATION + reasoning: Creating a new visualization ... + foundObjects: {} + createdVisualizations: + objects: + - id: total_revenue + title: Total Revenue + visualizationType: HEADLINE + metrics: + - id: net_sales + type: metric + title: Net Sales + dimensionality: [] + filters: [] + suggestions: + - query: Switch to a bar chart to compare revenue across different + categories + label: Switch to a bar chart + - query: Add a time dimension to see revenue trends over time + label: Add time dimension + savedVisualizationId: some_saved_visualization_id + reasoning: ' + + + + + + Here is a headline showing the Total Revenue: + + - Metrics: Net Sales + + - Attributes: None + + - Filter: None + + + ' + userFeedback: NONE + threadId: demo_testing.demo. + - request: + method: POST + uri: http://localhost:3000/api/v1/actions/workspaces/demo_testing/ai/chatHistory + body: + reset: true + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '70' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=63072000; includeSubDomains + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - '0' + body: + string: + interactions: [] + threadId: demo_testing.demo + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '1412' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + Referrer-Policy: + - same-origin + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + body: + string: + data: + - id: demo + type: workspace + attributes: + name: Demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo + - id: demo_testing + type: workspace + attributes: + name: demo_testing + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo_testing + - id: demo_west + type: workspace + attributes: + name: Demo West + relationships: + parent: + data: + id: demo + type: workspace + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo_west + - id: demo_west_california + type: workspace + attributes: + name: Demo West California + relationships: + parent: + data: + id: demo_west + type: workspace + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california + - id: trial + type: workspace + attributes: + name: Trial + links: + self: http://localhost:3000/api/v1/entities/workspaces/trial + included: + - id: demo + type: workspace + attributes: + name: Demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo + - id: demo_west + type: workspace + attributes: + name: Demo West + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo_west + links: + self: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + next: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=1&size=500 + - request: + method: DELETE + uri: http://localhost:3000/api/v1/entities/workspaces/demo_testing + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + DATE: *id001 + Expires: + - '0' + Featurepolicy: + - geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr + 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope + 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'; + Pragma: + - no-cache + Referrer-Policy: + - same-origin + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + body: + string: '' diff --git a/gooddata-sdk/tests/compute/test_compute_service.py b/gooddata-sdk/tests/compute/test_compute_service.py index a7ce29f53..b7efbe49c 100644 --- a/gooddata-sdk/tests/compute/test_compute_service.py +++ b/gooddata-sdk/tests/compute/test_compute_service.py @@ -145,6 +145,34 @@ def test_set_ai_chat_history_feedback(test_config): sdk.catalog_workspace.delete_workspace(test_workspace_id) +@gd_vcr.use_cassette(str(_fixtures_dir / "set_ai_chat_history_saved_visualization.yaml")) +def test_set_ai_chat_history_saved_visualization(test_config): + """Test set AI chat history saved visualization.""" + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) + path = _current_dir / "load" / "ai" + test_workspace_id = test_config["workspace_test"] + + try: + _setup_test_workspace(sdk, test_workspace_id, path) + chat_response = sdk.compute.ai_chat(test_workspace_id, "Show revenue") + created_visualization_id = chat_response.created_visualizations["objects"][0]["id"] + saved_visualization_id = "some_saved_visualization_id" + sdk.compute.set_ai_chat_history_saved_visualization( + test_workspace_id, + created_visualization_id, + saved_visualization_id, + chat_response.chat_history_interaction_id, + ) + response = sdk.compute.get_ai_chat_history(test_workspace_id) + assert ( + response.interactions[0]["createdVisualizations"]["objects"][0]["savedVisualizationId"] + == saved_visualization_id + ) + finally: + sdk.compute.reset_ai_chat_history(test_workspace_id) + sdk.catalog_workspace.delete_workspace(test_workspace_id) + + @gd_vcr.use_cassette(str(_fixtures_dir / "reset_ai_chat_history.yaml")) def test_reset_ai_chat_history(test_config): """Test reset AI chat history.""" diff --git a/schemas/gooddata-afm-client.json b/schemas/gooddata-afm-client.json index a1d764f10..066097888 100644 --- a/schemas/gooddata-afm-client.json +++ b/schemas/gooddata-afm-client.json @@ -804,6 +804,9 @@ "description": "User feedback.", "type": "boolean" }, + "savedVisualization": { + "$ref": "#/components/schemas/SavedVisualization" + }, "threadIdSuffix": { "description": "Chat History thread suffix appended to ID generated by backend. Enables more chat windows.", "type": "string" @@ -933,6 +936,11 @@ "format": "int32", "type": "integer" }, + "interactionLimit": { + "description": "Maximum number of interactions in the time window any user can do in the workspace", + "format": "int32", + "type": "integer" + }, "timeWindowHours": { "description": "Time window in hours", "format": "int32", @@ -941,6 +949,7 @@ }, "required": [ "interactionCount", + "interactionLimit", "timeWindowHours" ], "type": "object" @@ -1118,6 +1127,10 @@ }, "type": "array" }, + "savedVisualizationId": { + "description": "Saved visualization ID.", + "type": "string" + }, "suggestions": { "description": "Suggestions for next steps", "items": { @@ -2832,6 +2845,24 @@ ], "type": "object" }, + "SavedVisualization": { + "description": "Created and saved visualization IDs.", + "properties": { + "createdVisualizationId": { + "description": "Created visualization ID.", + "type": "string" + }, + "savedVisualizationId": { + "description": "Saved visualization ID.", + "type": "string" + } + }, + "required": [ + "createdVisualizationId", + "savedVisualizationId" + ], + "type": "object" + }, "SearchRelationshipObject": { "properties": { "sourceObjectId": { diff --git a/schemas/gooddata-api-client.json b/schemas/gooddata-api-client.json index 00d1d064b..55966fee6 100644 --- a/schemas/gooddata-api-client.json +++ b/schemas/gooddata-api-client.json @@ -66,7 +66,18 @@ "filters": { "description": "Various filter types to filter the execution result.", "items": { - "$ref": "#/components/schemas/FilterDefinition" + "$ref": "#/components/schemas/FilterDefinition", + "oneOf": [ + { + "$ref": "#/components/schemas/AbstractMeasureValueFilter" + }, + { + "$ref": "#/components/schemas/FilterDefinitionForSimpleMeasure" + }, + { + "$ref": "#/components/schemas/InlineFilterDefinition" + } + ] }, "type": "array" }, @@ -203,6 +214,13 @@ "notificationChannel": { "$ref": "#/components/schemas/DeclarativeNotificationChannelIdentifier" }, + "rawExports": { + "items": { + "$ref": "#/components/schemas/AutomationRawExport" + }, + "type": "array", + "uniqueItems": true + }, "recipients": { "items": { "$ref": "#/components/schemas/DeclarativeUserIdentifier" @@ -210,6 +228,13 @@ "type": "array", "uniqueItems": true }, + "slidesExports": { + "items": { + "$ref": "#/components/schemas/AutomationSlidesExport" + }, + "type": "array", + "uniqueItems": true + }, "tabularExports": { "items": { "$ref": "#/components/schemas/AutomationTabularExport" @@ -890,6 +915,46 @@ "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" }, "AttributeExecutionResultHeader": { @@ -1253,6 +1318,17 @@ ], "type": "object" }, + "AutomationRawExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/RawExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, "AutomationSchedule": { "properties": { "cron": { @@ -1285,6 +1361,17 @@ ], "type": "object" }, + "AutomationSlidesExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/SlidesExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, "AutomationTabularExport": { "properties": { "requestPayload": { @@ -1395,6 +1482,9 @@ "description": "User feedback.", "type": "boolean" }, + "savedVisualization": { + "$ref": "#/components/schemas/SavedVisualization" + }, "threadIdSuffix": { "description": "Chat History thread suffix appended to ID generated by backend. Enables more chat windows.", "type": "string" @@ -1524,6 +1614,11 @@ "format": "int32", "type": "integer" }, + "interactionLimit": { + "description": "Maximum number of interactions in the time window any user can do in the workspace", + "format": "int32", + "type": "integer" + }, "timeWindowHours": { "description": "Time window in hours", "format": "int32", @@ -1532,6 +1627,7 @@ }, "required": [ "interactionCount", + "interactionLimit", "timeWindowHours" ], "type": "object" @@ -1962,6 +2058,10 @@ }, "type": "array" }, + "savedVisualizationId": { + "description": "Saved visualization ID.", + "type": "string" + }, "suggestions": { "description": "Suggestions for next steps", "items": { @@ -2082,53 +2182,48 @@ "DashboardAttributeFilter": { "properties": { "attributeFilter": { - "allOf": [ - { - "$ref": "#/components/schemas/DashboardFilter" + "properties": { + "attributeElements": { + "$ref": "#/components/schemas/AttributeElements" }, - { - "properties": { - "attributeElements": { - "$ref": "#/components/schemas/AttributeElements" - }, - "displayForm": { - "type": "string" - }, - "filterElementsBy": { - "items": { - "$ref": "#/components/schemas/AttributeFilterParent" - }, - "type": "array" - }, - "filterElementsByDate": { - "items": { - "$ref": "#/components/schemas/AttributeFilterByDate" - }, - "type": "array" - }, - "negativeSelection": { - "type": "boolean" - }, - "selectionMode": { - "enum": [ - "single", - "multi" - ], - "type": "string" - }, - "title": { - "type": "string" - }, - "validateElementsBy": { - "items": { - "type": "string" - }, - "type": "array" - } + "displayForm": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "filterElementsBy": { + "items": { + "$ref": "#/components/schemas/AttributeFilterParent" }, - "type": "object" + "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", @@ -2145,63 +2240,74 @@ "DashboardDateFilter": { "properties": { "dateFilter": { - "allOf": [ - { - "$ref": "#/components/schemas/DashboardFilter" + "properties": { + "attribute": { + "$ref": "#/components/schemas/IdentifierRef" }, - { - "properties": { - "attribute": { - "type": "string" - }, - "dataSet": { - "type": "string" - }, - "from": { - "type": "string" - }, - "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" - ], + "dataSet": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "from": { + "oneOf": [ + { "type": "string" }, - "to": { + { + "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" }, - "type": { - "enum": [ - "relative", - "absolute" - ], - "type": "string" + { + "format": "int32", + "type": "integer" } - }, - "type": "object" + ] + }, + "type": { + "enum": [ + "relative", + "absolute" + ], + "type": "string" } - ], + }, "required": [ "granularity", "type" @@ -2214,14 +2320,35 @@ ], "type": "object" }, - "DashboardFilter": { + "DashboardExportSettings": { + "description": "Additional settings.", "properties": { - "localIdentifier": { - "type": "string" + "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": { @@ -2317,14 +2444,7 @@ "dashboardFiltersOverride": { "description": "List of filters that will be used instead of the default dashboard filters.", "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/DashboardAttributeFilter" - }, - { - "$ref": "#/components/schemas/DashboardDateFilter" - } - ] + "$ref": "#/components/schemas/DashboardFilter" }, "type": "array" }, @@ -2340,6 +2460,18 @@ ], "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": [ @@ -2650,6 +2782,17 @@ ], "type": "object" }, + "DateValue": { + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, "DeclarativeAnalyticalDashboard": { "properties": { "content": { @@ -3138,6 +3281,13 @@ "notificationChannel": { "$ref": "#/components/schemas/DeclarativeNotificationChannelIdentifier" }, + "rawExports": { + "items": { + "$ref": "#/components/schemas/AutomationRawExport" + }, + "type": "array", + "uniqueItems": true + }, "recipients": { "items": { "$ref": "#/components/schemas/DeclarativeUserIdentifier" @@ -3148,6 +3298,13 @@ "schedule": { "$ref": "#/components/schemas/AutomationSchedule" }, + "slidesExports": { + "items": { + "$ref": "#/components/schemas/AutomationSlidesExport" + }, + "type": "array", + "uniqueItems": true + }, "state": { "default": "ACTIVE", "description": "Current state of the automation.", @@ -3482,6 +3639,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -3598,6 +3756,13 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, + "precedence": { + "description": "Precedence used in aggregate awareness.", + "example": 0, + "format": "int32", + "minimum": 0, + "type": "integer" + }, "references": { "description": "An array of references.", "items": { @@ -3939,6 +4104,9 @@ "maxLength": 255, "type": "string" }, + "sourceFactReference": { + "$ref": "#/components/schemas/DeclarativeSourceFactReference" + }, "tags": { "description": "A list of tags.", "example": [ @@ -4096,11 +4264,42 @@ "maxLength": 255, "type": "string" }, + "oauthCustomAuthAttributes": { + "additionalProperties": { + "description": "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.", + "maxLength": 10000, + "type": "string" + }, + "description": "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.", + "maxLength": 10000, + "type": "object" + }, + "oauthCustomScopes": { + "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", + "items": { + "maxLength": 255, + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "oauthIssuerId": { + "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", + "example": "myOidcProvider", + "maxLength": 255, + "type": "string" + }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, "type": "string" }, + "oauthSubjectIdClaim": { + "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", + "example": "oid", + "maxLength": 255, + "type": "string" + }, "samlMetadata": { "description": "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.", "maxLength": 15000, @@ -4113,6 +4312,30 @@ ], "type": "object" }, + "DeclarativeIdentityProviderIdentifier": { + "description": "An Identity Provider identifier.", + "properties": { + "id": { + "description": "Identifier of the identity provider.", + "example": "gooddata.com", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "A type.", + "enum": [ + "identityProvider" + ], + "example": "identityProvider", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, "DeclarativeJwk": { "description": "A declarative form of the JWK.", "properties": { @@ -4330,7 +4553,8 @@ "type": "string" }, "customDashboardUrl": { - "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", + "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are:\n{workspaceId}\n{dashboardId}\n{automationId}\n{asOfDate}\n", + "maxLength": 255, "type": "string" }, "dashboardLinkVisibility": { @@ -4396,6 +4620,11 @@ "example": "channel", "maxLength": 255, "type": "string" + }, + "notificationSource": { + "description": "Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are:\n{{workspaceId}}\n{{workspaceName}}\n{{workspaceDescription}}\n{{dashboardId}}\n{{dashboardName}}\n{{dashboardDescription}}\n", + "maxLength": 10000, + "type": "string" } }, "required": [ @@ -4558,6 +4787,9 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, + "identityProvider": { + "$ref": "#/components/schemas/DeclarativeIdentityProviderIdentifier" + }, "name": { "description": "Formal name of the organization.", "example": "Alpha corporation", @@ -4846,9 +5078,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "example": "TIMEZONE", "type": "string" @@ -4886,6 +5121,29 @@ ], "type": "object" }, + "DeclarativeSourceFactReference": { + "description": "Aggregated awareness source fact reference.", + "properties": { + "id": { + "$ref": "#/components/schemas/FactIdentifier" + }, + "operation": { + "description": "Aggregation operation.", + "enum": [ + "SUM", + "MIN", + "MAX" + ], + "example": "SUM", + "type": "string" + } + }, + "required": [ + "id", + "operation" + ], + "type": "object" + }, "DeclarativeTable": { "description": "A database table.", "properties": { @@ -6508,6 +6766,10 @@ "fileName": { "type": "string" }, + "fileSize": { + "format": "int64", + "type": "integer" + }, "fileUri": { "type": "string" }, @@ -6535,6 +6797,30 @@ ], "type": "object" }, + "FactIdentifier": { + "description": "A fact identifier.", + "properties": { + "id": { + "description": "Fact ID.", + "example": "fact_id", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "A type of the fact.", + "enum": [ + "fact" + ], + "example": "fact", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, "File": { "properties": { "any": { @@ -7119,6 +7405,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": { @@ -7149,6 +7476,7 @@ "type": "string" }, "maxItems": 1, + "minItems": 1, "type": "array", "uniqueItems": true } @@ -7156,7 +7484,8 @@ "required": [ "dashboardId", "fileName", - "format" + "format", + "widgetIds" ], "type": "object" }, @@ -8716,6 +9045,20 @@ }, "type": "object" }, + "rawExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/RawExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "schedule": { "properties": { "cron": { @@ -8748,6 +9091,20 @@ ], "type": "object" }, + "slidesExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/SlidesExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "state": { "description": "Current state of the automation.", "enum": [ @@ -8993,6 +9350,20 @@ "format": "date-time", "type": "string" }, + "rawExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/RawExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "schedule": { "properties": { "cron": { @@ -9025,6 +9396,20 @@ ], "type": "object" }, + "slidesExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/SlidesExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "state": { "description": "Current state of the automation.", "enum": [ @@ -9366,6 +9751,20 @@ }, "type": "object" }, + "rawExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/RawExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "schedule": { "properties": { "cron": { @@ -9398,6 +9797,20 @@ ], "type": "object" }, + "slidesExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/SlidesExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "state": { "description": "Current state of the automation.", "enum": [ @@ -10781,6 +11194,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -10988,6 +11402,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -11153,6 +11568,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -11372,6 +11788,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -11497,6 +11914,10 @@ }, "type": "array" }, + "precedence": { + "format": "int32", + "type": "integer" + }, "referenceProperties": { "items": { "properties": { @@ -13002,6 +13423,14 @@ "maxLength": 10000, "type": "string" }, + "operation": { + "enum": [ + "SUM", + "MIN", + "MAX" + ], + "type": "string" + }, "sourceColumn": { "maxLength": 255, "type": "string" @@ -13075,6 +13504,17 @@ "data" ], "type": "object" + }, + "sourceFact": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiFactToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" } }, "type": "object" @@ -13102,7 +13542,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" + "$ref": "#/components/schemas/JsonApiFactOutIncludes" }, "type": "array", "uniqueItems": true @@ -13116,6 +13556,16 @@ ], "type": "object" }, + "JsonApiFactOutIncludes": { + "oneOf": [ + { + "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiFactOutWithLinks" + } + ] + }, "JsonApiFactOutList": { "description": "A JSON:API document with a list of resources", "properties": { @@ -13129,7 +13579,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" + "$ref": "#/components/schemas/JsonApiFactOutIncludes" }, "type": "array", "uniqueItems": true @@ -13168,6 +13618,15 @@ }, "type": "array" }, + "JsonApiFactToOneLinkage": { + "description": "References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/JsonApiFactLinkage" + } + ] + }, "JsonApiFilterContextIn": { "description": "JSON:API representation of filterContext entity.", "properties": { @@ -13997,11 +14456,40 @@ "maxLength": 255, "type": "string" }, + "oauthCustomAuthAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "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.", + "maxLength": 10000, + "type": "object" + }, + "oauthCustomScopes": { + "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", + "items": { + "maxLength": 255, + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "oauthIssuerId": { + "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", + "example": "myOidcProvider", + "maxLength": 255, + "type": "string" + }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, "type": "string" }, + "oauthSubjectIdClaim": { + "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", + "example": "oid", + "maxLength": 255, + "type": "string" + }, "samlMetadata": { "description": "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.", "maxLength": 15000, @@ -14046,6 +14534,25 @@ ], "type": "object" }, + "JsonApiIdentityProviderLinkage": { + "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members.", + "properties": { + "id": { + "type": "string" + }, + "type": { + "enum": [ + "identityProvider" + ], + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, "JsonApiIdentityProviderOut": { "description": "JSON:API representation of identityProvider entity.", "properties": { @@ -14074,10 +14581,39 @@ "maxLength": 255, "type": "string" }, + "oauthCustomAuthAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "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.", + "maxLength": 10000, + "type": "object" + }, + "oauthCustomScopes": { + "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", + "items": { + "maxLength": 255, + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "oauthIssuerId": { + "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", + "example": "myOidcProvider", + "maxLength": 255, + "type": "string" + }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, "type": "string" + }, + "oauthSubjectIdClaim": { + "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", + "example": "oid", + "maxLength": 255, + "type": "string" } }, "required": [ @@ -14191,11 +14727,40 @@ "maxLength": 255, "type": "string" }, + "oauthCustomAuthAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "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.", + "maxLength": 10000, + "type": "object" + }, + "oauthCustomScopes": { + "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", + "items": { + "maxLength": 255, + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "oauthIssuerId": { + "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", + "example": "myOidcProvider", + "maxLength": 255, + "type": "string" + }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, "type": "string" }, + "oauthSubjectIdClaim": { + "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", + "example": "oid", + "maxLength": 255, + "type": "string" + }, "samlMetadata": { "description": "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.", "maxLength": 15000, @@ -14237,6 +14802,15 @@ ], "type": "object" }, + "JsonApiIdentityProviderToOneLinkage": { + "description": "References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/JsonApiIdentityProviderLinkage" + } + ] + }, "JsonApiJwkIn": { "description": "JSON:API representation of jwk entity.", "properties": { @@ -14670,12 +15244,6 @@ "nullable": true, "type": "string" }, - "description": { - "description": "User-facing description of the LLM Provider.", - "maxLength": 10000, - "nullable": true, - "type": "string" - }, "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, @@ -14755,12 +15323,6 @@ "nullable": true, "type": "string" }, - "description": { - "description": "User-facing description of the LLM Provider.", - "maxLength": 10000, - "nullable": true, - "type": "string" - }, "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, @@ -14874,12 +15436,6 @@ "nullable": true, "type": "string" }, - "description": { - "description": "User-facing description of the LLM Provider.", - "maxLength": 10000, - "nullable": true, - "type": "string" - }, "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, @@ -15468,6 +16024,114 @@ }, "type": "array" }, + "JsonApiNotificationChannelIdentifierOut": { + "description": "JSON:API representation of notificationChannelIdentifier entity.", + "properties": { + "attributes": { + "properties": { + "allowedRecipients": { + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", + "enum": [ + "CREATOR", + "INTERNAL", + "EXTERNAL" + ], + "type": "string" + }, + "description": { + "maxLength": 10000, + "nullable": true, + "type": "string" + }, + "destinationType": { + "enum": [ + "WEBHOOK", + "SMTP", + "DEFAULT_SMTP", + "IN_PLATFORM" + ], + "type": "string" + }, + "name": { + "maxLength": 255, + "nullable": true, + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "notificationChannelIdentifier" + ], + "example": "notificationChannelIdentifier", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "JsonApiNotificationChannelIdentifierOutDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiNotificationChannelIdentifierOut" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiNotificationChannelIdentifierOutList": { + "description": "A JSON:API document with a list of resources", + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/JsonApiNotificationChannelIdentifierOutWithLinks" + }, + "type": "array", + "uniqueItems": true + }, + "links": { + "$ref": "#/components/schemas/ListLinks" + }, + "meta": { + "properties": { + "page": { + "$ref": "#/components/schemas/PageMetadata" + } + }, + "type": "object" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiNotificationChannelIdentifierOutWithLinks": { + "allOf": [ + { + "$ref": "#/components/schemas/JsonApiNotificationChannelIdentifierOut" + }, + { + "$ref": "#/components/schemas/ObjectLinksContainer" + } + ] + }, "JsonApiNotificationChannelIn": { "description": "JSON:API representation of notificationChannel entity.", "properties": { @@ -15483,7 +16147,8 @@ "type": "string" }, "customDashboardUrl": { - "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", + "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are:\n{workspaceId}\n{dashboardId}\n{automationId}\n{asOfDate}\n", + "maxLength": 255, "type": "string" }, "dashboardLinkVisibility": { @@ -15529,6 +16194,11 @@ "maxLength": 255, "nullable": true, "type": "string" + }, + "notificationSource": { + "description": "Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are:\n{{workspaceId}}\n{{workspaceName}}\n{{workspaceDescription}}\n{{dashboardId}}\n{{dashboardName}}\n{{dashboardDescription}}\n", + "maxLength": 10000, + "type": "string" } }, "type": "object" @@ -15599,7 +16269,8 @@ "type": "string" }, "customDashboardUrl": { - "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", + "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are:\n{workspaceId}\n{dashboardId}\n{automationId}\n{asOfDate}\n", + "maxLength": 255, "type": "string" }, "dashboardLinkVisibility": { @@ -15655,6 +16326,11 @@ "maxLength": 255, "nullable": true, "type": "string" + }, + "notificationSource": { + "description": "Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are:\n{{workspaceId}}\n{{workspaceName}}\n{{workspaceDescription}}\n{{dashboardId}}\n{{dashboardName}}\n{{dashboardDescription}}\n", + "maxLength": 10000, + "type": "string" } }, "type": "object" @@ -15746,7 +16422,111 @@ "type": "string" }, "customDashboardUrl": { - "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", + "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are:\n{workspaceId}\n{dashboardId}\n{automationId}\n{asOfDate}\n", + "maxLength": 255, + "type": "string" + }, + "dashboardLinkVisibility": { + "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", + "enum": [ + "HIDDEN", + "INTERNAL_ONLY", + "ALL" + ], + "type": "string" + }, + "description": { + "maxLength": 10000, + "nullable": true, + "type": "string" + }, + "destination": { + "description": "The destination where the notifications are to be sent.", + "oneOf": [ + { + "$ref": "#/components/schemas/DefaultSmtp" + }, + { + "$ref": "#/components/schemas/InPlatform" + }, + { + "$ref": "#/components/schemas/Smtp" + }, + { + "$ref": "#/components/schemas/Webhook" + } + ] + }, + "inPlatformNotification": { + "description": "In-platform notifications configuration. No effect if the destination type is IN_PLATFORM.\nDISABLED - in-platform notifications are not sent\nENABLED - in-platform notifications are sent in addition to the regular notifications\n", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "name": { + "maxLength": 255, + "nullable": true, + "type": "string" + }, + "notificationSource": { + "description": "Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are:\n{{workspaceId}}\n{{workspaceName}}\n{{workspaceDescription}}\n{{dashboardId}}\n{{dashboardName}}\n{{dashboardDescription}}\n", + "maxLength": 10000, + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "notificationChannel" + ], + "example": "notificationChannel", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "JsonApiNotificationChannelPatchDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiNotificationChannelPatch" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiNotificationChannelPostOptionalId": { + "description": "JSON:API representation of notificationChannel entity.", + "properties": { + "attributes": { + "properties": { + "allowedRecipients": { + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", + "enum": [ + "CREATOR", + "INTERNAL", + "EXTERNAL" + ], + "type": "string" + }, + "customDashboardUrl": { + "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are:\n{workspaceId}\n{dashboardId}\n{automationId}\n{asOfDate}\n", + "maxLength": 255, "type": "string" }, "dashboardLinkVisibility": { @@ -15792,102 +16572,10 @@ "maxLength": 255, "nullable": true, "type": "string" - } - }, - "type": "object" - }, - "id": { - "description": "API identifier of an object", - "example": "id1", - "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", - "type": "string" - }, - "type": { - "description": "Object type", - "enum": [ - "notificationChannel" - ], - "example": "notificationChannel", - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "JsonApiNotificationChannelPatchDocument": { - "properties": { - "data": { - "$ref": "#/components/schemas/JsonApiNotificationChannelPatch" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - "JsonApiNotificationChannelPostOptionalId": { - "description": "JSON:API representation of notificationChannel entity.", - "properties": { - "attributes": { - "properties": { - "allowedRecipients": { - "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", - "enum": [ - "CREATOR", - "INTERNAL", - "EXTERNAL" - ], - "type": "string" }, - "customDashboardUrl": { - "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", - "type": "string" - }, - "dashboardLinkVisibility": { - "description": "Dashboard link visibility in notifications.\nHIDDEN - the link will not be included\nINTERNAL_ONLY - only internal users will see the link\nALL - all users will see the link\n", - "enum": [ - "HIDDEN", - "INTERNAL_ONLY", - "ALL" - ], - "type": "string" - }, - "description": { + "notificationSource": { + "description": "Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are:\n{{workspaceId}}\n{{workspaceName}}\n{{workspaceDescription}}\n{{dashboardId}}\n{{dashboardName}}\n{{dashboardDescription}}\n", "maxLength": 10000, - "nullable": true, - "type": "string" - }, - "destination": { - "description": "The destination where the notifications are to be sent.", - "oneOf": [ - { - "$ref": "#/components/schemas/DefaultSmtp" - }, - { - "$ref": "#/components/schemas/InPlatform" - }, - { - "$ref": "#/components/schemas/Smtp" - }, - { - "$ref": "#/components/schemas/Webhook" - } - ] - }, - "inPlatformNotification": { - "description": "In-platform notifications configuration. No effect if the destination type is IN_PLATFORM.\nDISABLED - in-platform notifications are not sent\nENABLED - in-platform notifications are sent in addition to the regular notifications\n", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "name": { - "maxLength": 255, - "nullable": true, "type": "string" } }, @@ -16019,6 +16707,22 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, + "relationships": { + "properties": { + "identityProvider": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiIdentityProviderToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + } + }, + "type": "object" + }, "type": { "description": "Object type", "enum": [ @@ -16183,6 +16887,17 @@ "data" ], "type": "object" + }, + "identityProvider": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiIdentityProviderToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" } }, "type": "object" @@ -16231,6 +16946,9 @@ }, { "$ref": "#/components/schemas/JsonApiUserGroupOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiIdentityProviderOutWithLinks" } ] }, @@ -16320,6 +17038,22 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, + "relationships": { + "properties": { + "identityProvider": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiIdentityProviderToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + } + }, + "type": "object" + }, "type": { "description": "Object type", "enum": [ @@ -16377,9 +17111,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -16449,9 +17186,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -16561,9 +17301,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -18039,9 +18782,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -18111,9 +18857,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -19861,9 +20610,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -19933,9 +20685,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -20071,9 +20826,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -20143,9 +20901,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -20859,7 +21620,7 @@ "properties": { "attributes": { "items": { - "type": "string" + "$ref": "#/components/schemas/IdentifierRef" }, "type": "array" } @@ -21718,9 +22479,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "example": "TIMEZONE", "type": "string" @@ -21946,6 +22710,24 @@ }, "type": "object" }, + "SavedVisualization": { + "description": "Created and saved visualization IDs.", + "properties": { + "createdVisualizationId": { + "description": "Created visualization ID.", + "type": "string" + }, + "savedVisualizationId": { + "description": "Saved visualization ID.", + "type": "string" + } + }, + "required": [ + "createdVisualizationId", + "savedVisualizationId" + ], + "type": "object" + }, "ScanRequest": { "description": "A request containing all information critical to model scanning.", "properties": { @@ -22277,6 +23059,12 @@ "Settings": { "description": "Additional settings.", "properties": { + "exportInfo": { + "default": false, + "description": "Include export info sheet in the exported file. Works only with `visualizationObject`. (XLSX)", + "example": true, + "type": "boolean" + }, "mergeHeaders": { "description": "Merge equal headers in neighbouring cells. (XLSX)", "example": true, @@ -22930,6 +23718,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -23798,6 +24587,15 @@ }, "type": "array" }, + "notificationSource": { + "type": "string" + }, + "rawExports": { + "items": { + "$ref": "#/components/schemas/ExportResult" + }, + "type": "array" + }, "recipients": { "items": { "$ref": "#/components/schemas/WebhookRecipient" @@ -23808,6 +24606,12 @@ "format": "int32", "type": "integer" }, + "slidesExports": { + "items": { + "$ref": "#/components/schemas/ExportResult" + }, + "type": "array" + }, "tabularExports": { "items": { "$ref": "#/components/schemas/ExportResult" @@ -28910,7 +29714,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "include=bootstrapUser,bootstrapUserGroup", + "example": "include=bootstrapUser,bootstrapUserGroup,identityProvider", "explode": false, "in": "query", "name": "include", @@ -28920,8 +29724,10 @@ "enum": [ "users", "userGroups", + "identityProviders", "bootstrapUser", "bootstrapUserGroup", + "identityProvider", "ALL" ], "type": "string" @@ -28995,7 +29801,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "include=bootstrapUser,bootstrapUserGroup", + "example": "include=bootstrapUser,bootstrapUserGroup,identityProvider", "explode": false, "in": "query", "name": "include", @@ -29005,8 +29811,10 @@ "enum": [ "users", "userGroups", + "identityProviders", "bootstrapUser", "bootstrapUserGroup", + "identityProvider", "ALL" ], "type": "string" @@ -29068,7 +29876,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "include=bootstrapUser,bootstrapUserGroup", + "example": "include=bootstrapUser,bootstrapUserGroup,identityProvider", "explode": false, "in": "query", "name": "include", @@ -29078,8 +29886,10 @@ "enum": [ "users", "userGroups", + "identityProviders", "bootstrapUser", "bootstrapUserGroup", + "identityProvider", "ALL" ], "type": "string" @@ -31045,7 +31855,7 @@ "parameters": [ { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString", + "example": "filter=title==someString;provider==LLMProviderValue", "in": "query", "name": "filter", "schema": { @@ -31144,7 +31954,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString", + "example": "filter=title==someString;provider==LLMProviderValue", "in": "query", "name": "filter", "schema": { @@ -31171,7 +31981,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString", + "example": "filter=title==someString;provider==LLMProviderValue", "in": "query", "name": "filter", "schema": { @@ -31206,7 +32016,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString", + "example": "filter=title==someString;provider==LLMProviderValue", "in": "query", "name": "filter", "schema": { @@ -31251,7 +32061,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString", + "example": "filter=title==someString;provider==LLMProviderValue", "in": "query", "name": "filter", "schema": { @@ -31289,6 +32099,104 @@ ] } }, + "/api/v1/entities/notificationChannelIdentifiers": { + "get": { + "operationId": "getAllEntities@NotificationChannelIdentifiers", + "parameters": [ + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "filter=name==someString;description==someString", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/size" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=page,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "page", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiNotificationChannelIdentifierOutList" + } + } + }, + "description": "Request successfully processed" + } + }, + "tags": [ + "entities", + "organization-model-controller" + ] + } + }, + "/api/v1/entities/notificationChannelIdentifiers/{id}": { + "get": { + "operationId": "getEntity@NotificationChannelIdentifiers", + "parameters": [ + { + "$ref": "#/components/parameters/idPathParameter" + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "filter=name==someString;description==someString", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiNotificationChannelIdentifierOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "tags": [ + "entities", + "organization-model-controller" + ] + } + }, "/api/v1/entities/notificationChannels": { "get": { "operationId": "getAllEntities@NotificationChannels", @@ -37633,7 +38541,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString;dataset.id==321", + "example": "filter=title==someString;description==someString;dataset.id==321;sourceFact.id==321", "in": "query", "name": "filter", "schema": { @@ -37642,7 +38550,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "include=dataset", + "example": "include=dataset,sourceFact", "explode": false, "in": "query", "name": "include", @@ -37651,7 +38559,9 @@ "items": { "enum": [ "datasets", + "facts", "dataset", + "sourceFact", "ALL" ], "type": "string" @@ -37750,7 +38660,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString;dataset.id==321", + "example": "filter=title==someString;description==someString;dataset.id==321;sourceFact.id==321", "in": "query", "name": "filter", "schema": { @@ -37759,7 +38669,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "include=dataset", + "example": "include=dataset,sourceFact", "explode": false, "in": "query", "name": "include", @@ -37768,7 +38678,9 @@ "items": { "enum": [ "datasets", + "facts", "dataset", + "sourceFact", "ALL" ], "type": "string" diff --git a/schemas/gooddata-automation-client.json b/schemas/gooddata-automation-client.json index 125da9de8..7a999e08e 100644 --- a/schemas/gooddata-automation-client.json +++ b/schemas/gooddata-automation-client.json @@ -1,6 +1,55 @@ { "components": { "schemas": { + "AFM": { + "description": "Top level executable entity. Combination of [A]ttributes, [F]ilters & [M]etrics.", + "properties": { + "attributes": { + "description": "Attributes to be used in the computation.", + "items": { + "$ref": "#/components/schemas/AttributeItem" + }, + "type": "array" + }, + "auxMeasures": { + "description": "Metrics to be referenced from other AFM objects (e.g. filters) but not included in the result.", + "items": { + "$ref": "#/components/schemas/MeasureItem" + }, + "type": "array" + }, + "filters": { + "description": "Various filter types to filter the execution result.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/AbstractMeasureValueFilter" + }, + { + "$ref": "#/components/schemas/FilterDefinitionForSimpleMeasure" + }, + { + "$ref": "#/components/schemas/InlineFilterDefinition" + } + ] + }, + "type": "array" + }, + "measures": { + "description": "Metrics to be computed.", + "items": { + "$ref": "#/components/schemas/MeasureItem" + }, + "type": "array" + } + }, + "required": [ + "attributes", + "filters", + "measures" + ], + "type": "object" + }, "AbsoluteDateFilter": { "description": "A datetime filter specifying exact from and to values.", "properties": { @@ -96,6 +145,13 @@ "notificationChannel": { "$ref": "#/components/schemas/DeclarativeNotificationChannelIdentifier" }, + "rawExports": { + "items": { + "$ref": "#/components/schemas/AutomationRawExport" + }, + "type": "array", + "uniqueItems": true + }, "recipients": { "items": { "$ref": "#/components/schemas/DeclarativeUserIdentifier" @@ -103,6 +159,13 @@ "type": "array", "uniqueItems": true }, + "slidesExports": { + "items": { + "$ref": "#/components/schemas/AutomationSlidesExport" + }, + "type": "array", + "uniqueItems": true + }, "tabularExports": { "items": { "$ref": "#/components/schemas/AutomationTabularExport" @@ -684,6 +747,28 @@ ], "type": "object" }, + "AutomationRawExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/RawExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "AutomationSlidesExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/SlidesExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, "AutomationTabularExport": { "properties": { "requestPayload": { @@ -962,6 +1047,26 @@ ], "type": "object" }, + "ExecutionSettings": { + "description": "Various settings affecting the process of AFM execution or its result", + "properties": { + "dataSamplingPercentage": { + "description": "Specifies the percentage of rows from fact datasets to use during computation. This feature is available only for workspaces that use a Vertica Data Source without table views.", + "exclusiveMaximum": true, + "exclusiveMinimum": true, + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "timestamp": { + "description": "Specifies the timestamp of the execution from which relative filters are resolved. If not set, the current time is used.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, "ExportResult": { "properties": { "errorMessage": { @@ -977,6 +1082,10 @@ "fileName": { "type": "string" }, + "fileSize": { + "format": "int64", + "type": "integer" + }, "fileUri": { "type": "string" }, @@ -1076,6 +1185,7 @@ "type": "string" }, "maxItems": 1, + "minItems": 1, "type": "array", "uniqueItems": true } @@ -1083,7 +1193,8 @@ "required": [ "dashboardId", "fileName", - "format" + "format", + "widgetIds" ], "type": "object" }, @@ -1769,6 +1880,87 @@ ], "type": "object" }, + "RawCustomLabel": { + "description": "Custom label object override.", + "properties": { + "title": { + "description": "Override value.", + "type": "string" + } + }, + "required": [ + "title" + ], + "type": "object" + }, + "RawCustomMetric": { + "description": "Custom metric object override.", + "properties": { + "title": { + "description": "Metric title override.", + "type": "string" + } + }, + "required": [ + "title" + ], + "type": "object" + }, + "RawCustomOverride": { + "description": "Custom cell value overrides (IDs will be replaced with specified values).", + "properties": { + "labels": { + "additionalProperties": { + "$ref": "#/components/schemas/RawCustomLabel" + }, + "description": "Map of CustomLabels with keys used as placeholders in export result.", + "type": "object" + }, + "metrics": { + "additionalProperties": { + "$ref": "#/components/schemas/RawCustomMetric" + }, + "description": "Map of CustomMetrics with keys used as placeholders in export result.", + "type": "object" + } + }, + "type": "object" + }, + "RawExportRequest": { + "description": "Export request object describing the export properties and overrides for raw exports.", + "properties": { + "customOverride": { + "$ref": "#/components/schemas/RawCustomOverride" + }, + "execution": { + "$ref": "#/components/schemas/AFM" + }, + "executionSettings": { + "$ref": "#/components/schemas/ExecutionSettings" + }, + "fileName": { + "description": "Filename of downloaded file without extension.", + "example": "result", + "type": "string" + }, + "format": { + "description": "Requested resulting file type.", + "enum": [ + "ARROW_FILE", + "ARROW_STREAM", + "CSV" + ], + "example": "CSV", + "type": "string" + } + }, + "required": [ + "execution", + "fileName", + "format" + ], + "type": "object" + }, "Relative": { "properties": { "measure": { @@ -1871,6 +2063,12 @@ "Settings": { "description": "Additional settings.", "properties": { + "exportInfo": { + "default": false, + "description": "Include export info sheet in the exported file. Works only with `visualizationObject`. (XLSX)", + "example": true, + "type": "boolean" + }, "mergeHeaders": { "description": "Merge equal headers in neighbouring cells. (XLSX)", "example": true, @@ -1965,6 +2163,62 @@ ], "type": "object" }, + "SlidesExportRequest": { + "description": "Export request object describing the export properties and metadata for slides exports.", + "properties": { + "dashboardId": { + "description": "Dashboard identifier", + "example": "761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + "type": "string" + }, + "fileName": { + "description": "File name to be used for retrieving the pdf document.", + "example": "filename", + "type": "string" + }, + "format": { + "description": "Requested resulting file type.", + "enum": [ + "PDF", + "PPTX" + ], + "example": "PDF", + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/JsonNode" + }, + "templateId": { + "description": "Export template identifier.", + "maxLength": 255, + "nullable": true, + "type": "string" + }, + "visualizationIds": { + "description": "List of visualization ids to be exported. Note that only one visualization is currently supported.", + "items": { + "type": "string" + }, + "maxItems": 1, + "type": "array", + "uniqueItems": true + }, + "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": [ + "fileName", + "format" + ], + "type": "object" + }, "Smtp": { "description": "Custom SMTP destination for notifications. The properties host, port, username, and password are required on create and update", "properties": { @@ -2314,6 +2568,15 @@ }, "type": "array" }, + "notificationSource": { + "type": "string" + }, + "rawExports": { + "items": { + "$ref": "#/components/schemas/ExportResult" + }, + "type": "array" + }, "recipients": { "items": { "$ref": "#/components/schemas/WebhookRecipient" @@ -2324,6 +2587,12 @@ "format": "int32", "type": "integer" }, + "slidesExports": { + "items": { + "$ref": "#/components/schemas/ExportResult" + }, + "type": "array" + }, "tabularExports": { "items": { "$ref": "#/components/schemas/ExportResult" diff --git a/schemas/gooddata-export-client.json b/schemas/gooddata-export-client.json index deb2f6665..d3a4abdb8 100644 --- a/schemas/gooddata-export-client.json +++ b/schemas/gooddata-export-client.json @@ -312,6 +312,46 @@ "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": { @@ -511,53 +551,48 @@ "DashboardAttributeFilter": { "properties": { "attributeFilter": { - "allOf": [ - { - "$ref": "#/components/schemas/DashboardFilter" + "properties": { + "attributeElements": { + "$ref": "#/components/schemas/AttributeElements" }, - { - "properties": { - "attributeElements": { - "$ref": "#/components/schemas/AttributeElements" - }, - "displayForm": { - "type": "string" - }, - "filterElementsBy": { - "items": { - "$ref": "#/components/schemas/AttributeFilterParent" - }, - "type": "array" - }, - "filterElementsByDate": { - "items": { - "$ref": "#/components/schemas/AttributeFilterByDate" - }, - "type": "array" - }, - "negativeSelection": { - "type": "boolean" - }, - "selectionMode": { - "enum": [ - "single", - "multi" - ], - "type": "string" - }, - "title": { - "type": "string" - }, - "validateElementsBy": { - "items": { - "type": "string" - }, - "type": "array" - } + "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": "object" + "type": "array" } - ], + }, "required": [ "attributeElements", "displayForm", @@ -574,63 +609,74 @@ "DashboardDateFilter": { "properties": { "dateFilter": { - "allOf": [ - { - "$ref": "#/components/schemas/DashboardFilter" + "properties": { + "attribute": { + "$ref": "#/components/schemas/IdentifierRef" }, - { - "properties": { - "attribute": { - "type": "string" - }, - "dataSet": { - "type": "string" - }, - "from": { - "type": "string" - }, - "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" - ], + "dataSet": { + "$ref": "#/components/schemas/IdentifierRef" + }, + "from": { + "oneOf": [ + { "type": "string" }, - "to": { + { + "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" }, - "type": { - "enum": [ - "relative", - "absolute" - ], - "type": "string" + { + "format": "int32", + "type": "integer" } - }, - "type": "object" + ] + }, + "type": { + "enum": [ + "relative", + "absolute" + ], + "type": "string" } - ], + }, "required": [ "granularity", "type" @@ -643,28 +689,42 @@ ], "type": "object" }, - "DashboardFilter": { + "DashboardExportSettings": { + "description": "Additional settings.", "properties": { - "localIdentifier": { - "type": "string" + "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" + }, "DashboardTabularExportRequest": { "description": "Export request object describing the export properties for dashboard tabular exports.", "properties": { "dashboardFiltersOverride": { "description": "List of filters that will be used instead of the default dashboard filters.", "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/DashboardAttributeFilter" - }, - { - "$ref": "#/components/schemas/DashboardDateFilter" - } - ] + "$ref": "#/components/schemas/DashboardFilter" }, "type": "array" }, @@ -680,6 +740,18 @@ ], "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": [ @@ -700,6 +772,17 @@ ], "type": "object" }, + "DateValue": { + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, "ExecutionSettings": { "description": "Various settings affecting the process of AFM execution or its result", "properties": { @@ -773,6 +856,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": { @@ -803,6 +927,7 @@ "type": "string" }, "maxItems": 1, + "minItems": 1, "type": "array", "uniqueItems": true } @@ -810,7 +935,8 @@ "required": [ "dashboardId", "fileName", - "format" + "format", + "widgetIds" ], "type": "object" }, @@ -952,7 +1078,7 @@ "properties": { "attributes": { "items": { - "type": "string" + "$ref": "#/components/schemas/IdentifierRef" }, "type": "array" } @@ -1403,6 +1529,12 @@ "Settings": { "description": "Additional settings.", "properties": { + "exportInfo": { + "default": false, + "description": "Include export info sheet in the exported file. Works only with `visualizationObject`. (XLSX)", + "example": true, + "type": "boolean" + }, "mergeHeaders": { "description": "Merge equal headers in neighbouring cells. (XLSX)", "example": true, diff --git a/schemas/gooddata-metadata-client.json b/schemas/gooddata-metadata-client.json index feb09cf6e..6d5a06a23 100644 --- a/schemas/gooddata-metadata-client.json +++ b/schemas/gooddata-metadata-client.json @@ -46,6 +46,45 @@ } }, "schemas": { + "AFM": { + "description": "Top level executable entity. Combination of [A]ttributes, [F]ilters & [M]etrics.", + "properties": { + "attributes": { + "description": "Attributes to be used in the computation.", + "items": { + "$ref": "#/components/schemas/AttributeItem" + }, + "type": "array" + }, + "auxMeasures": { + "description": "Metrics to be referenced from other AFM objects (e.g. filters) but not included in the result.", + "items": { + "$ref": "#/components/schemas/MeasureItem" + }, + "type": "array" + }, + "filters": { + "description": "Various filter types to filter the execution result.", + "items": { + "$ref": "#/components/schemas/FilterDefinition" + }, + "type": "array" + }, + "measures": { + "description": "Metrics to be computed.", + "items": { + "$ref": "#/components/schemas/MeasureItem" + }, + "type": "array" + } + }, + "required": [ + "attributes", + "filters", + "measures" + ], + "type": "object" + }, "AbsoluteDateFilter": { "description": "A datetime filter specifying exact from and to values.", "properties": { @@ -621,6 +660,17 @@ }, "type": "object" }, + "AutomationRawExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/RawExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, "AutomationSchedule": { "properties": { "cron": { @@ -653,6 +703,17 @@ ], "type": "object" }, + "AutomationSlidesExport": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/SlidesExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, "AutomationTabularExport": { "properties": { "requestPayload": { @@ -1647,6 +1708,13 @@ "notificationChannel": { "$ref": "#/components/schemas/DeclarativeNotificationChannelIdentifier" }, + "rawExports": { + "items": { + "$ref": "#/components/schemas/AutomationRawExport" + }, + "type": "array", + "uniqueItems": true + }, "recipients": { "items": { "$ref": "#/components/schemas/DeclarativeUserIdentifier" @@ -1657,6 +1725,13 @@ "schedule": { "$ref": "#/components/schemas/AutomationSchedule" }, + "slidesExports": { + "items": { + "$ref": "#/components/schemas/AutomationSlidesExport" + }, + "type": "array", + "uniqueItems": true + }, "state": { "default": "ACTIVE", "description": "Current state of the automation.", @@ -1992,6 +2067,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -2108,6 +2184,13 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, + "precedence": { + "description": "Precedence used in aggregate awareness.", + "example": 0, + "format": "int32", + "minimum": 0, + "type": "integer" + }, "references": { "description": "An array of references.", "items": { @@ -2449,6 +2532,9 @@ "maxLength": 255, "type": "string" }, + "sourceFactReference": { + "$ref": "#/components/schemas/DeclarativeSourceFactReference" + }, "tags": { "description": "A list of tags.", "example": [ @@ -2606,11 +2692,42 @@ "maxLength": 255, "type": "string" }, + "oauthCustomAuthAttributes": { + "additionalProperties": { + "description": "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.", + "maxLength": 10000, + "type": "string" + }, + "description": "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.", + "maxLength": 10000, + "type": "object" + }, + "oauthCustomScopes": { + "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", + "items": { + "maxLength": 255, + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "oauthIssuerId": { + "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", + "example": "myOidcProvider", + "maxLength": 255, + "type": "string" + }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, "type": "string" }, + "oauthSubjectIdClaim": { + "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", + "example": "oid", + "maxLength": 255, + "type": "string" + }, "samlMetadata": { "description": "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.", "maxLength": 15000, @@ -2623,6 +2740,30 @@ ], "type": "object" }, + "DeclarativeIdentityProviderIdentifier": { + "description": "An Identity Provider identifier.", + "properties": { + "id": { + "description": "Identifier of the identity provider.", + "example": "gooddata.com", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "A type.", + "enum": [ + "identityProvider" + ], + "example": "identityProvider", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, "DeclarativeJwk": { "description": "A declarative form of the JWK.", "properties": { @@ -2840,7 +2981,8 @@ "type": "string" }, "customDashboardUrl": { - "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", + "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are:\n{workspaceId}\n{dashboardId}\n{automationId}\n{asOfDate}\n", + "maxLength": 255, "type": "string" }, "dashboardLinkVisibility": { @@ -2906,6 +3048,11 @@ "example": "channel", "maxLength": 255, "type": "string" + }, + "notificationSource": { + "description": "Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are:\n{{workspaceId}}\n{{workspaceName}}\n{{workspaceDescription}}\n{{dashboardId}}\n{{dashboardName}}\n{{dashboardDescription}}\n", + "maxLength": 10000, + "type": "string" } }, "required": [ @@ -3068,6 +3215,9 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, + "identityProvider": { + "$ref": "#/components/schemas/DeclarativeIdentityProviderIdentifier" + }, "name": { "description": "Formal name of the organization.", "example": "Alpha corporation", @@ -3356,9 +3506,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "example": "TIMEZONE", "type": "string" @@ -3396,6 +3549,29 @@ ], "type": "object" }, + "DeclarativeSourceFactReference": { + "description": "Aggregated awareness source fact reference.", + "properties": { + "id": { + "$ref": "#/components/schemas/FactIdentifier" + }, + "operation": { + "description": "Aggregation operation.", + "enum": [ + "SUM", + "MIN", + "MAX" + ], + "example": "SUM", + "type": "string" + } + }, + "required": [ + "id", + "operation" + ], + "type": "object" + }, "DeclarativeTable": { "description": "A database table.", "properties": { @@ -4406,6 +4582,26 @@ ], "type": "object" }, + "ExecutionSettings": { + "description": "Various settings affecting the process of AFM execution or its result", + "properties": { + "dataSamplingPercentage": { + "description": "Specifies the percentage of rows from fact datasets to use during computation. This feature is available only for workspaces that use a Vertica Data Source without table views.", + "exclusiveMaximum": true, + "exclusiveMinimum": true, + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "timestamp": { + "description": "Specifies the timestamp of the execution from which relative filters are resolved. If not set, the current time is used.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, "ExportRequest": { "description": "JSON content to be used as export request payload for /export/tabular and /export/visual endpoints. ", "example": [ @@ -4421,6 +4617,30 @@ ], "type": "object" }, + "FactIdentifier": { + "description": "A fact identifier.", + "properties": { + "id": { + "description": "Fact ID.", + "example": "fact_id", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "A type of the fact.", + "enum": [ + "fact" + ], + "example": "fact", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, "File": { "properties": { "any": { @@ -4817,6 +5037,7 @@ "type": "string" }, "maxItems": 1, + "minItems": 1, "type": "array", "uniqueItems": true } @@ -4824,7 +5045,8 @@ "required": [ "dashboardId", "fileName", - "format" + "format", + "widgetIds" ], "type": "object" }, @@ -6375,6 +6597,20 @@ }, "type": "object" }, + "rawExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/RawExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "schedule": { "properties": { "cron": { @@ -6407,6 +6643,20 @@ ], "type": "object" }, + "slidesExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/SlidesExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "state": { "description": "Current state of the automation.", "enum": [ @@ -6652,6 +6902,20 @@ "format": "date-time", "type": "string" }, + "rawExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/RawExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "schedule": { "properties": { "cron": { @@ -6684,6 +6948,20 @@ ], "type": "object" }, + "slidesExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/SlidesExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "state": { "description": "Current state of the automation.", "enum": [ @@ -7025,6 +7303,20 @@ }, "type": "object" }, + "rawExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/RawExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "schedule": { "properties": { "cron": { @@ -7057,6 +7349,20 @@ ], "type": "object" }, + "slidesExports": { + "items": { + "properties": { + "requestPayload": { + "$ref": "#/components/schemas/SlidesExportRequest" + } + }, + "required": [ + "requestPayload" + ], + "type": "object" + }, + "type": "array" + }, "state": { "description": "Current state of the automation.", "enum": [ @@ -8440,6 +8746,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -8647,6 +8954,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -8812,6 +9120,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -9031,6 +9340,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT", @@ -9156,6 +9466,10 @@ }, "type": "array" }, + "precedence": { + "format": "int32", + "type": "integer" + }, "referenceProperties": { "items": { "properties": { @@ -10661,6 +10975,14 @@ "maxLength": 10000, "type": "string" }, + "operation": { + "enum": [ + "SUM", + "MIN", + "MAX" + ], + "type": "string" + }, "sourceColumn": { "maxLength": 255, "type": "string" @@ -10734,13 +11056,24 @@ "data" ], "type": "object" - } - }, - "type": "object" - }, - "type": { - "description": "Object type", - "enum": [ + }, + "sourceFact": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiFactToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + } + }, + "type": "object" + }, + "type": { + "description": "Object type", + "enum": [ "fact" ], "example": "fact", @@ -10761,7 +11094,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" + "$ref": "#/components/schemas/JsonApiFactOutIncludes" }, "type": "array", "uniqueItems": true @@ -10775,6 +11108,16 @@ ], "type": "object" }, + "JsonApiFactOutIncludes": { + "oneOf": [ + { + "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiFactOutWithLinks" + } + ] + }, "JsonApiFactOutList": { "description": "A JSON:API document with a list of resources", "properties": { @@ -10788,7 +11131,7 @@ "included": { "description": "Included resources", "items": { - "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks" + "$ref": "#/components/schemas/JsonApiFactOutIncludes" }, "type": "array", "uniqueItems": true @@ -10827,6 +11170,15 @@ }, "type": "array" }, + "JsonApiFactToOneLinkage": { + "description": "References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/JsonApiFactLinkage" + } + ] + }, "JsonApiFilterContextIn": { "description": "JSON:API representation of filterContext entity.", "properties": { @@ -11656,11 +12008,40 @@ "maxLength": 255, "type": "string" }, + "oauthCustomAuthAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "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.", + "maxLength": 10000, + "type": "object" + }, + "oauthCustomScopes": { + "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", + "items": { + "maxLength": 255, + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "oauthIssuerId": { + "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", + "example": "myOidcProvider", + "maxLength": 255, + "type": "string" + }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, "type": "string" }, + "oauthSubjectIdClaim": { + "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", + "example": "oid", + "maxLength": 255, + "type": "string" + }, "samlMetadata": { "description": "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.", "maxLength": 15000, @@ -11705,6 +12086,25 @@ ], "type": "object" }, + "JsonApiIdentityProviderLinkage": { + "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members.", + "properties": { + "id": { + "type": "string" + }, + "type": { + "enum": [ + "identityProvider" + ], + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, "JsonApiIdentityProviderOut": { "description": "JSON:API representation of identityProvider entity.", "properties": { @@ -11733,10 +12133,39 @@ "maxLength": 255, "type": "string" }, + "oauthCustomAuthAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "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.", + "maxLength": 10000, + "type": "object" + }, + "oauthCustomScopes": { + "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", + "items": { + "maxLength": 255, + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "oauthIssuerId": { + "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", + "example": "myOidcProvider", + "maxLength": 255, + "type": "string" + }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, "type": "string" + }, + "oauthSubjectIdClaim": { + "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", + "example": "oid", + "maxLength": 255, + "type": "string" } }, "required": [ @@ -11850,11 +12279,40 @@ "maxLength": 255, "type": "string" }, + "oauthCustomAuthAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "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.", + "maxLength": 10000, + "type": "object" + }, + "oauthCustomScopes": { + "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", + "items": { + "maxLength": 255, + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "oauthIssuerId": { + "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", + "example": "myOidcProvider", + "maxLength": 255, + "type": "string" + }, "oauthIssuerLocation": { "description": "The location of your OIDC provider. This field is mandatory for OIDC IdP.", "maxLength": 255, "type": "string" }, + "oauthSubjectIdClaim": { + "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", + "example": "oid", + "maxLength": 255, + "type": "string" + }, "samlMetadata": { "description": "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.", "maxLength": 15000, @@ -11896,6 +12354,15 @@ ], "type": "object" }, + "JsonApiIdentityProviderToOneLinkage": { + "description": "References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/JsonApiIdentityProviderLinkage" + } + ] + }, "JsonApiJwkIn": { "description": "JSON:API representation of jwk entity.", "properties": { @@ -12329,12 +12796,6 @@ "nullable": true, "type": "string" }, - "description": { - "description": "User-facing description of the LLM Provider.", - "maxLength": 10000, - "nullable": true, - "type": "string" - }, "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, @@ -12414,12 +12875,6 @@ "nullable": true, "type": "string" }, - "description": { - "description": "User-facing description of the LLM Provider.", - "maxLength": 10000, - "nullable": true, - "type": "string" - }, "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, @@ -12533,12 +12988,6 @@ "nullable": true, "type": "string" }, - "description": { - "description": "User-facing description of the LLM Provider.", - "maxLength": 10000, - "nullable": true, - "type": "string" - }, "llmModel": { "description": "LLM Model. We provide a default model for each provider, but you can override it here.", "maxLength": 255, @@ -13127,6 +13576,114 @@ }, "type": "array" }, + "JsonApiNotificationChannelIdentifierOut": { + "description": "JSON:API representation of notificationChannelIdentifier entity.", + "properties": { + "attributes": { + "properties": { + "allowedRecipients": { + "description": "Allowed recipients of notifications from this channel.\nCREATOR - only the creator\nINTERNAL - all users within the organization\nEXTERNAL - all recipients including those outside the organization\n", + "enum": [ + "CREATOR", + "INTERNAL", + "EXTERNAL" + ], + "type": "string" + }, + "description": { + "maxLength": 10000, + "nullable": true, + "type": "string" + }, + "destinationType": { + "enum": [ + "WEBHOOK", + "SMTP", + "DEFAULT_SMTP", + "IN_PLATFORM" + ], + "type": "string" + }, + "name": { + "maxLength": 255, + "nullable": true, + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "API identifier of an object", + "example": "id1", + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + }, + "type": { + "description": "Object type", + "enum": [ + "notificationChannelIdentifier" + ], + "example": "notificationChannelIdentifier", + "type": "string" + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "JsonApiNotificationChannelIdentifierOutDocument": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiNotificationChannelIdentifierOut" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiNotificationChannelIdentifierOutList": { + "description": "A JSON:API document with a list of resources", + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/JsonApiNotificationChannelIdentifierOutWithLinks" + }, + "type": "array", + "uniqueItems": true + }, + "links": { + "$ref": "#/components/schemas/ListLinks" + }, + "meta": { + "properties": { + "page": { + "$ref": "#/components/schemas/PageMetadata" + } + }, + "type": "object" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "JsonApiNotificationChannelIdentifierOutWithLinks": { + "allOf": [ + { + "$ref": "#/components/schemas/JsonApiNotificationChannelIdentifierOut" + }, + { + "$ref": "#/components/schemas/ObjectLinksContainer" + } + ] + }, "JsonApiNotificationChannelIn": { "description": "JSON:API representation of notificationChannel entity.", "properties": { @@ -13142,7 +13699,8 @@ "type": "string" }, "customDashboardUrl": { - "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", + "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are:\n{workspaceId}\n{dashboardId}\n{automationId}\n{asOfDate}\n", + "maxLength": 255, "type": "string" }, "dashboardLinkVisibility": { @@ -13188,6 +13746,11 @@ "maxLength": 255, "nullable": true, "type": "string" + }, + "notificationSource": { + "description": "Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are:\n{{workspaceId}}\n{{workspaceName}}\n{{workspaceDescription}}\n{{dashboardId}}\n{{dashboardName}}\n{{dashboardDescription}}\n", + "maxLength": 10000, + "type": "string" } }, "type": "object" @@ -13258,7 +13821,8 @@ "type": "string" }, "customDashboardUrl": { - "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", + "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are:\n{workspaceId}\n{dashboardId}\n{automationId}\n{asOfDate}\n", + "maxLength": 255, "type": "string" }, "dashboardLinkVisibility": { @@ -13314,6 +13878,11 @@ "maxLength": 255, "nullable": true, "type": "string" + }, + "notificationSource": { + "description": "Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are:\n{{workspaceId}}\n{{workspaceName}}\n{{workspaceDescription}}\n{{dashboardId}}\n{{dashboardName}}\n{{dashboardDescription}}\n", + "maxLength": 10000, + "type": "string" } }, "type": "object" @@ -13405,7 +13974,8 @@ "type": "string" }, "customDashboardUrl": { - "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", + "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are:\n{workspaceId}\n{dashboardId}\n{automationId}\n{asOfDate}\n", + "maxLength": 255, "type": "string" }, "dashboardLinkVisibility": { @@ -13451,6 +14021,11 @@ "maxLength": 255, "nullable": true, "type": "string" + }, + "notificationSource": { + "description": "Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are:\n{{workspaceId}}\n{{workspaceName}}\n{{workspaceDescription}}\n{{dashboardId}}\n{{dashboardName}}\n{{dashboardDescription}}\n", + "maxLength": 10000, + "type": "string" } }, "type": "object" @@ -13502,7 +14077,8 @@ "type": "string" }, "customDashboardUrl": { - "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are {workspaceId}, {dashboardId}.", + "description": "Custom dashboard url that is going to be used in the notification. If not specified it is going to be deduced based on the context. Allowed placeholders are:\n{workspaceId}\n{dashboardId}\n{automationId}\n{asOfDate}\n", + "maxLength": 255, "type": "string" }, "dashboardLinkVisibility": { @@ -13548,6 +14124,11 @@ "maxLength": 255, "nullable": true, "type": "string" + }, + "notificationSource": { + "description": "Human-readable description of the source of the notification. If specified, this propertywill be included in the notifications to this channel.Allowed placeholders are:\n{{workspaceId}}\n{{workspaceName}}\n{{workspaceDescription}}\n{{dashboardId}}\n{{dashboardName}}\n{{dashboardDescription}}\n", + "maxLength": 10000, + "type": "string" } }, "type": "object" @@ -13678,6 +14259,22 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, + "relationships": { + "properties": { + "identityProvider": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiIdentityProviderToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + } + }, + "type": "object" + }, "type": { "description": "Object type", "enum": [ @@ -13842,6 +14439,17 @@ "data" ], "type": "object" + }, + "identityProvider": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiIdentityProviderToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" } }, "type": "object" @@ -13890,6 +14498,9 @@ }, { "$ref": "#/components/schemas/JsonApiUserGroupOutWithLinks" + }, + { + "$ref": "#/components/schemas/JsonApiIdentityProviderOutWithLinks" } ] }, @@ -13979,6 +14590,22 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, + "relationships": { + "properties": { + "identityProvider": { + "properties": { + "data": { + "$ref": "#/components/schemas/JsonApiIdentityProviderToOneLinkage" + } + }, + "required": [ + "data" + ], + "type": "object" + } + }, + "type": "object" + }, "type": { "description": "Object type", "enum": [ @@ -14036,9 +14663,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -14108,9 +14738,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -14220,9 +14853,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -15698,9 +16334,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -15770,9 +16409,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -17520,9 +18162,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -17592,9 +18237,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -17730,9 +18378,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -17802,9 +18453,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "type": "string" } @@ -18685,6 +19339,87 @@ ], "type": "object" }, + "RawCustomLabel": { + "description": "Custom label object override.", + "properties": { + "title": { + "description": "Override value.", + "type": "string" + } + }, + "required": [ + "title" + ], + "type": "object" + }, + "RawCustomMetric": { + "description": "Custom metric object override.", + "properties": { + "title": { + "description": "Metric title override.", + "type": "string" + } + }, + "required": [ + "title" + ], + "type": "object" + }, + "RawCustomOverride": { + "description": "Custom cell value overrides (IDs will be replaced with specified values).", + "properties": { + "labels": { + "additionalProperties": { + "$ref": "#/components/schemas/RawCustomLabel" + }, + "description": "Map of CustomLabels with keys used as placeholders in export result.", + "type": "object" + }, + "metrics": { + "additionalProperties": { + "$ref": "#/components/schemas/RawCustomMetric" + }, + "description": "Map of CustomMetrics with keys used as placeholders in export result.", + "type": "object" + } + }, + "type": "object" + }, + "RawExportRequest": { + "description": "Export request object describing the export properties and overrides for raw exports.", + "properties": { + "customOverride": { + "$ref": "#/components/schemas/RawCustomOverride" + }, + "execution": { + "$ref": "#/components/schemas/AFM" + }, + "executionSettings": { + "$ref": "#/components/schemas/ExecutionSettings" + }, + "fileName": { + "description": "Filename of downloaded file without extension.", + "example": "result", + "type": "string" + }, + "format": { + "description": "Requested resulting file type.", + "enum": [ + "ARROW_FILE", + "ARROW_STREAM", + "CSV" + ], + "example": "CSV", + "type": "string" + } + }, + "required": [ + "execution", + "fileName", + "format" + ], + "type": "object" + }, "ReferenceIdentifier": { "description": "A reference identifier.", "properties": { @@ -18887,9 +19622,12 @@ "SEPARATORS", "DATE_FILTER_CONFIG", "JIT_PROVISIONING", + "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", - "AI_RATE_LIMIT" + "AI_RATE_LIMIT", + "ATTACHMENT_SIZE_LIMIT", + "ATTACHMENT_LINK_TTL" ], "example": "TIMEZONE", "type": "string" @@ -19013,6 +19751,12 @@ "Settings": { "description": "Additional settings.", "properties": { + "exportInfo": { + "default": false, + "description": "Include export info sheet in the exported file. Works only with `visualizationObject`. (XLSX)", + "example": true, + "type": "boolean" + }, "mergeHeaders": { "description": "Merge equal headers in neighbouring cells. (XLSX)", "example": true, @@ -19128,6 +19872,62 @@ "namespace": "urn:oasis:names:tc:xliff:document:2.0" } }, + "SlidesExportRequest": { + "description": "Export request object describing the export properties and metadata for slides exports.", + "properties": { + "dashboardId": { + "description": "Dashboard identifier", + "example": "761cd28b-3f57-4ac9-bbdc-1c552cc0d1d0", + "type": "string" + }, + "fileName": { + "description": "File name to be used for retrieving the pdf document.", + "example": "filename", + "type": "string" + }, + "format": { + "description": "Requested resulting file type.", + "enum": [ + "PDF", + "PPTX" + ], + "example": "PDF", + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/JsonNode" + }, + "templateId": { + "description": "Export template identifier.", + "maxLength": 255, + "nullable": true, + "type": "string" + }, + "visualizationIds": { + "description": "List of visualization ids to be exported. Note that only one visualization is currently supported.", + "items": { + "type": "string" + }, + "maxItems": 1, + "type": "array", + "uniqueItems": true + }, + "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": [ + "fileName", + "format" + ], + "type": "object" + }, "Smtp": { "allOf": [ { @@ -21949,7 +22749,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "include=bootstrapUser,bootstrapUserGroup", + "example": "include=bootstrapUser,bootstrapUserGroup,identityProvider", "explode": false, "in": "query", "name": "include", @@ -21959,8 +22759,10 @@ "enum": [ "users", "userGroups", + "identityProviders", "bootstrapUser", "bootstrapUserGroup", + "identityProvider", "ALL" ], "type": "string" @@ -22034,7 +22836,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "include=bootstrapUser,bootstrapUserGroup", + "example": "include=bootstrapUser,bootstrapUserGroup,identityProvider", "explode": false, "in": "query", "name": "include", @@ -22044,8 +22846,10 @@ "enum": [ "users", "userGroups", + "identityProviders", "bootstrapUser", "bootstrapUserGroup", + "identityProvider", "ALL" ], "type": "string" @@ -22107,7 +22911,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "include=bootstrapUser,bootstrapUserGroup", + "example": "include=bootstrapUser,bootstrapUserGroup,identityProvider", "explode": false, "in": "query", "name": "include", @@ -22117,8 +22921,10 @@ "enum": [ "users", "userGroups", + "identityProviders", "bootstrapUser", "bootstrapUserGroup", + "identityProvider", "ALL" ], "type": "string" @@ -24084,7 +24890,7 @@ "parameters": [ { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString", + "example": "filter=title==someString;provider==LLMProviderValue", "in": "query", "name": "filter", "schema": { @@ -24183,7 +24989,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString", + "example": "filter=title==someString;provider==LLMProviderValue", "in": "query", "name": "filter", "schema": { @@ -24210,7 +25016,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString", + "example": "filter=title==someString;provider==LLMProviderValue", "in": "query", "name": "filter", "schema": { @@ -24245,7 +25051,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString", + "example": "filter=title==someString;provider==LLMProviderValue", "in": "query", "name": "filter", "schema": { @@ -24290,7 +25096,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString", + "example": "filter=title==someString;provider==LLMProviderValue", "in": "query", "name": "filter", "schema": { @@ -24328,6 +25134,104 @@ ] } }, + "/api/v1/entities/notificationChannelIdentifiers": { + "get": { + "operationId": "getAllEntities@NotificationChannelIdentifiers", + "parameters": [ + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "filter=name==someString;description==someString", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/size" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "description": "Include Meta objects.", + "example": "metaInclude=page,all", + "explode": false, + "in": "query", + "name": "metaInclude", + "required": false, + "schema": { + "description": "Included meta objects", + "items": { + "enum": [ + "page", + "all", + "ALL" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiNotificationChannelIdentifierOutList" + } + } + }, + "description": "Request successfully processed" + } + }, + "tags": [ + "entities", + "organization-model-controller" + ] + } + }, + "/api/v1/entities/notificationChannelIdentifiers/{id}": { + "get": { + "operationId": "getEntity@NotificationChannelIdentifiers", + "parameters": [ + { + "$ref": "#/components/parameters/idPathParameter" + }, + { + "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", + "example": "filter=name==someString;description==someString", + "in": "query", + "name": "filter", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/vnd.gooddata.api+json": { + "schema": { + "$ref": "#/components/schemas/JsonApiNotificationChannelIdentifierOutDocument" + } + } + }, + "description": "Request successfully processed" + } + }, + "tags": [ + "entities", + "organization-model-controller" + ] + } + }, "/api/v1/entities/notificationChannels": { "get": { "operationId": "getAllEntities@NotificationChannels", @@ -30672,7 +31576,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString;dataset.id==321", + "example": "filter=title==someString;description==someString;dataset.id==321;sourceFact.id==321", "in": "query", "name": "filter", "schema": { @@ -30681,7 +31585,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "include=dataset", + "example": "include=dataset,sourceFact", "explode": false, "in": "query", "name": "include", @@ -30690,7 +31594,9 @@ "items": { "enum": [ "datasets", + "facts", "dataset", + "sourceFact", "ALL" ], "type": "string" @@ -30789,7 +31695,7 @@ }, { "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser. You can specify any object parameter and parameter of related entity (for example title=='Some Title';description=='desc'). Additionally, if the entity relationship represents a polymorphic entity type, it can be casted to its subtypes (for example relatedEntity::subtype.subtypeProperty=='Value 123').", - "example": "filter=title==someString;description==someString;dataset.id==321", + "example": "filter=title==someString;description==someString;dataset.id==321;sourceFact.id==321", "in": "query", "name": "filter", "schema": { @@ -30798,7 +31704,7 @@ }, { "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.", - "example": "include=dataset", + "example": "include=dataset,sourceFact", "explode": false, "in": "query", "name": "include", @@ -30807,7 +31713,9 @@ "items": { "enum": [ "datasets", + "facts", "dataset", + "sourceFact", "ALL" ], "type": "string" diff --git a/schemas/gooddata-scan-client.json b/schemas/gooddata-scan-client.json index 7a57bd8ad..0d203c522 100644 --- a/schemas/gooddata-scan-client.json +++ b/schemas/gooddata-scan-client.json @@ -625,6 +625,7 @@ "MYSQL", "MARIADB", "ORACLE", + "PINOT", "SINGLESTORE", "MOTHERDUCK", "FLEXCONNECT",