gooddata-sdk 1.31.1.dev1__tar.gz → 1.31.1.dev2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gooddata_sdk-1.31.1.dev1/gooddata_sdk.egg-info → gooddata_sdk-1.31.1.dev2}/PKG-INFO +4 -4
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/README.md +1 -1
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/__init__.py +1 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/declarative_model/data_source.py +12 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/entity_model/data_source.py +2 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/entity.py +22 -0
- gooddata_sdk-1.31.1.dev2/gooddata_sdk/catalog/organization/entity_model/identity_provider.py +88 -0
- gooddata_sdk-1.31.1.dev2/gooddata_sdk/catalog/organization/layout/identity_provider.py +24 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/service.py +115 -6
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2/gooddata_sdk.egg-info}/PKG-INFO +4 -4
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk.egg-info/SOURCES.txt +2 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk.egg-info/requires.txt +1 -1
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/setup.py +3 -3
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/LICENSE.txt +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/MANIFEST.in +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/bin/gdc +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/_version.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/base.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/catalog_service_base.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/action_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/action_model/requests/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/action_model/requests/ldm_request.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/action_model/requests/scan_model_request.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/action_model/requests/scan_sql_request.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/action_model/responses/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/action_model/responses/scan_sql_response.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/action_model/sql_column.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/declarative_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/pdm.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/table.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/entity_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/entity_model/content_objects/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/service.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/validation/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/validation/data_source.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/depends_on.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/export/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/export/request.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/export/service.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/filter_by.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/identifier.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/entity_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/entity_model/directive.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/entity_model/jwk.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/entity_model/organization.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/entity_model/setting.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/layout/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/layout/notification_channel.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/parameter.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/permission/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/permission/declarative_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/permission/declarative_model/dashboard_assignees.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/permission/declarative_model/dashboard_permissions.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/permission/declarative_model/manage_dashboard_permissions.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/permission/declarative_model/permission.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/permission/service.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/rule.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/setting.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/types.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/declarative_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/declarative_model/user.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/declarative_model/user_and_user_groups.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/declarative_model/user_group.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/entity_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/entity_model/api_token.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/entity_model/user.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/entity_model/user_group.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/management_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/management_model/management.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/service.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/validate_by_item.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/content_service.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/base.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/export_definition.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/automation.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/data_filter_references.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset_extensions/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset_extensions/dataset_extension.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/date_dataset/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/date_dataset/date_dataset.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/ldm.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/entity_model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/entity_model/content_objects/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/entity_model/content_objects/dataset.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/entity_model/content_objects/metric.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/entity_model/content_objects/workspace_setting.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/entity_model/filter_view.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/entity_model/graph_objects/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/entity_model/graph_objects/graph.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/entity_model/user_data_filter.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/entity_model/workspace.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/model_container.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/service.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/cli/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/cli/clone.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/cli/constants.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/cli/deploy.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/cli/gdc_core.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/cli/package.json +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/cli/utils.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/client.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/compute_to_sdk_converter.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/model/__init__.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/model/attribute.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/model/base.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/model/execution.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/model/filter.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/model/metric.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/service.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/config.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/py.typed +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/sdk.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/support.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/table.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/type_converter.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/utils.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/visualization.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk.egg-info/dependency_links.txt +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk.egg-info/top_level.txt +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/setup.cfg +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/tests/test_client.py +0 -0
- {gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/tests/test_type_converter.py +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: gooddata-sdk
|
|
3
|
-
Version: 1.31.1.
|
|
3
|
+
Version: 1.31.1.dev2
|
|
4
4
|
Summary: GoodData Cloud Python SDK
|
|
5
5
|
Author: GoodData
|
|
6
6
|
Author-email: support@gooddata.com
|
|
7
7
|
License: MIT
|
|
8
|
-
Project-URL: Documentation, https://www.gooddata.com/docs/python-sdk/1.31.1.
|
|
8
|
+
Project-URL: Documentation, https://www.gooddata.com/docs/python-sdk/1.31.1.dev2
|
|
9
9
|
Project-URL: Source, https://github.com/gooddata/gooddata-python-sdk
|
|
10
10
|
Keywords: gooddata,sdk,api,analytics,headless,business,intelligence,headless-bi,cloud,native,semantic,layer,sql,metrics
|
|
11
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
@@ -22,7 +22,7 @@ Classifier: Typing :: Typed
|
|
|
22
22
|
Requires-Python: >=3.9.0
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
License-File: LICENSE.txt
|
|
25
|
-
Requires-Dist: gooddata-api-client~=1.31.1.
|
|
25
|
+
Requires-Dist: gooddata-api-client~=1.31.1.dev2
|
|
26
26
|
Requires-Dist: python-dateutil>=2.5.3
|
|
27
27
|
Requires-Dist: pyyaml>=5.1
|
|
28
28
|
Requires-Dist: attrs<=24.2.0,>=21.4.0
|
|
@@ -46,7 +46,7 @@ At the moment the SDK provides services to inspect and interact with the Semanti
|
|
|
46
46
|
* Compute Service
|
|
47
47
|
* Table Service
|
|
48
48
|
|
|
49
|
-
See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.31.1.
|
|
49
|
+
See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.31.1.dev2) for more details.
|
|
50
50
|
|
|
51
51
|
## Requirements
|
|
52
52
|
|
|
@@ -13,7 +13,7 @@ At the moment the SDK provides services to inspect and interact with the Semanti
|
|
|
13
13
|
* Compute Service
|
|
14
14
|
* Table Service
|
|
15
15
|
|
|
16
|
-
See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.31.1.
|
|
16
|
+
See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.31.1.dev2) for more details.
|
|
17
17
|
|
|
18
18
|
## Requirements
|
|
19
19
|
|
|
@@ -55,6 +55,7 @@ from gooddata_sdk.catalog.depends_on import CatalogDependsOn, CatalogDependsOnDa
|
|
|
55
55
|
from gooddata_sdk.catalog.entity import (
|
|
56
56
|
AttrCatalogEntity,
|
|
57
57
|
BasicCredentials,
|
|
58
|
+
ClientSecretCredentials,
|
|
58
59
|
KeyPairCredentials,
|
|
59
60
|
TokenCredentialsFromEnvVar,
|
|
60
61
|
TokenCredentialsFromFile,
|
|
@@ -111,6 +111,8 @@ class CatalogDeclarativeDataSource(Base):
|
|
|
111
111
|
token: Optional[str] = None,
|
|
112
112
|
private_key: Optional[str] = None,
|
|
113
113
|
private_key_passphrase: Optional[str] = None,
|
|
114
|
+
client_id: Optional[str] = None,
|
|
115
|
+
client_secret: Optional[str] = None,
|
|
114
116
|
) -> TestDefinitionRequest:
|
|
115
117
|
kwargs: dict[str, Any] = {"schema": self.schema}
|
|
116
118
|
if password is not None:
|
|
@@ -123,6 +125,10 @@ class CatalogDeclarativeDataSource(Base):
|
|
|
123
125
|
kwargs["private_key"] = private_key
|
|
124
126
|
if private_key_passphrase is not None:
|
|
125
127
|
kwargs["private_key_passphrase"] = private_key
|
|
128
|
+
if client_id is not None:
|
|
129
|
+
kwargs["client_id"] = client_id
|
|
130
|
+
if client_secret is not None:
|
|
131
|
+
kwargs["client_secret"] = client_secret
|
|
126
132
|
return TestDefinitionRequest(type=self.type, url=self.url, **kwargs)
|
|
127
133
|
|
|
128
134
|
@staticmethod
|
|
@@ -141,6 +147,8 @@ class CatalogDeclarativeDataSource(Base):
|
|
|
141
147
|
token: Optional[str] = None,
|
|
142
148
|
private_key: Optional[str] = None,
|
|
143
149
|
private_key_passphrase: Optional[str] = None,
|
|
150
|
+
client_id: Optional[str] = None,
|
|
151
|
+
client_secret: Optional[str] = None,
|
|
144
152
|
) -> DeclarativeDataSource:
|
|
145
153
|
dictionary = self._get_snake_dict()
|
|
146
154
|
if password is not None:
|
|
@@ -151,6 +159,10 @@ class CatalogDeclarativeDataSource(Base):
|
|
|
151
159
|
dictionary["private_key"] = private_key
|
|
152
160
|
if private_key_passphrase is not None:
|
|
153
161
|
dictionary["private_key_passphrase"] = private_key_passphrase
|
|
162
|
+
if client_id is not None:
|
|
163
|
+
dictionary["client_id"] = client_id
|
|
164
|
+
if client_secret is not None:
|
|
165
|
+
dictionary["client_secret"] = client_secret
|
|
154
166
|
return self.client_class().from_dict(dictionary)
|
|
155
167
|
|
|
156
168
|
def store_to_disk(self, data_sources_folder: Path) -> None:
|
|
@@ -16,6 +16,7 @@ from gooddata_api_client.model.json_api_data_source_patch_document import JsonAp
|
|
|
16
16
|
from gooddata_sdk.catalog.base import Base, value_in_allowed
|
|
17
17
|
from gooddata_sdk.catalog.entity import (
|
|
18
18
|
BasicCredentials,
|
|
19
|
+
ClientSecretCredentials,
|
|
19
20
|
Credentials,
|
|
20
21
|
KeyPairCredentials,
|
|
21
22
|
TokenCredentials,
|
|
@@ -34,6 +35,7 @@ def db_attrs_with_template(instance: CatalogDataSource, *args: Any) -> None:
|
|
|
34
35
|
class CatalogDataSourceBase(Base):
|
|
35
36
|
_SUPPORTED_CREDENTIALS: ClassVar[list[type[Credentials]]] = [
|
|
36
37
|
BasicCredentials,
|
|
38
|
+
ClientSecretCredentials,
|
|
37
39
|
TokenCredentials,
|
|
38
40
|
TokenCredentialsFromFile,
|
|
39
41
|
KeyPairCredentials,
|
|
@@ -121,6 +121,8 @@ class Credentials(Base):
|
|
|
121
121
|
PASSWORD_KEY: ClassVar[str] = "password"
|
|
122
122
|
PRIVATE_KEY: ClassVar[str] = "private_key"
|
|
123
123
|
PRIVATE_KEY_PASSPHRASE: ClassVar[str] = "private_key_passphrase"
|
|
124
|
+
CLIENT_ID: ClassVar[str] = "client_id"
|
|
125
|
+
CLIENT_SECRET: ClassVar[str] = "client_secret"
|
|
124
126
|
|
|
125
127
|
def to_api_args(self) -> dict[str, Any]:
|
|
126
128
|
return attr.asdict(self)
|
|
@@ -252,3 +254,23 @@ class KeyPairCredentials(Credentials):
|
|
|
252
254
|
# You have to fill it to keep it or update it
|
|
253
255
|
private_key="",
|
|
254
256
|
)
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
@attr.s(auto_attribs=True, kw_only=True)
|
|
260
|
+
class ClientSecretCredentials(Credentials):
|
|
261
|
+
client_id: str
|
|
262
|
+
client_secret: str = attr.field(repr=lambda value: "***")
|
|
263
|
+
|
|
264
|
+
@classmethod
|
|
265
|
+
def is_part_of_api(cls, entity: dict[str, Any]) -> bool:
|
|
266
|
+
return cls.CLIENT_ID in entity and cls.CLIENT_SECRET in entity
|
|
267
|
+
|
|
268
|
+
@classmethod
|
|
269
|
+
def from_api(cls, attributes: dict[str, Any]) -> ClientSecretCredentials:
|
|
270
|
+
# Credentials are not returned for security reasons
|
|
271
|
+
return cls(
|
|
272
|
+
client_id=attributes[cls.CLIENT_ID],
|
|
273
|
+
# Client secret is not returned from API (security)
|
|
274
|
+
# You have to fill it to keep it or update it
|
|
275
|
+
client_secret="",
|
|
276
|
+
)
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# (C) 2024 GoodData Corporation
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
from typing import Any, Optional
|
|
5
|
+
|
|
6
|
+
import attr
|
|
7
|
+
from gooddata_api_client.model.json_api_identity_provider_in import JsonApiIdentityProviderIn
|
|
8
|
+
from gooddata_api_client.model.json_api_identity_provider_in_attributes import JsonApiIdentityProviderInAttributes
|
|
9
|
+
from gooddata_api_client.model.json_api_identity_provider_in_document import JsonApiIdentityProviderInDocument
|
|
10
|
+
|
|
11
|
+
from gooddata_sdk.catalog.base import Base
|
|
12
|
+
from gooddata_sdk.utils import safeget
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@attr.s(auto_attribs=True, kw_only=True)
|
|
16
|
+
class CatalogIdentityProviderDocument(Base):
|
|
17
|
+
data: CatalogIdentityProvider
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
def client_class() -> type[JsonApiIdentityProviderInDocument]:
|
|
21
|
+
return JsonApiIdentityProviderInDocument
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@attr.s(auto_attribs=True, kw_only=True)
|
|
25
|
+
class CatalogIdentityProvider(Base):
|
|
26
|
+
id: str
|
|
27
|
+
attributes: Optional[CatalogIdentityProviderAttributes] = None
|
|
28
|
+
|
|
29
|
+
@staticmethod
|
|
30
|
+
def client_class() -> type[JsonApiIdentityProviderIn]:
|
|
31
|
+
return JsonApiIdentityProviderIn
|
|
32
|
+
|
|
33
|
+
@classmethod
|
|
34
|
+
def init(
|
|
35
|
+
cls,
|
|
36
|
+
identity_provider_id: str,
|
|
37
|
+
custom_claim_mapping: Optional[dict[str, str]] = None,
|
|
38
|
+
identifiers: Optional[list[str]] = None,
|
|
39
|
+
oauth_client_id: Optional[str] = None,
|
|
40
|
+
oauth_client_secret: Optional[str] = None,
|
|
41
|
+
oauth_issuer_id: Optional[str] = None,
|
|
42
|
+
oauth_issuer_location: Optional[str] = None,
|
|
43
|
+
saml_metadata: Optional[str] = None,
|
|
44
|
+
) -> CatalogIdentityProvider:
|
|
45
|
+
return cls(
|
|
46
|
+
id=identity_provider_id,
|
|
47
|
+
attributes=CatalogIdentityProviderAttributes(
|
|
48
|
+
custom_claim_mapping=custom_claim_mapping,
|
|
49
|
+
identifiers=identifiers,
|
|
50
|
+
oauth_client_id=oauth_client_id,
|
|
51
|
+
oauth_client_secret=oauth_client_secret,
|
|
52
|
+
oauth_issuer_id=oauth_issuer_id,
|
|
53
|
+
oauth_issuer_location=oauth_issuer_location,
|
|
54
|
+
saml_metadata=saml_metadata,
|
|
55
|
+
),
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
@classmethod
|
|
59
|
+
def from_api(cls, entity: dict[str, Any]) -> CatalogIdentityProvider:
|
|
60
|
+
ea = entity["attributes"]
|
|
61
|
+
attr = CatalogIdentityProviderAttributes(
|
|
62
|
+
custom_claim_mapping=safeget(ea, ["custom_claim_mapping"]),
|
|
63
|
+
identifiers=safeget(ea, ["identifiers"]),
|
|
64
|
+
oauth_client_id=safeget(ea, ["oauth_client_id"]),
|
|
65
|
+
oauth_client_secret=safeget(ea, ["oauth_client_secret"]),
|
|
66
|
+
oauth_issuer_id=safeget(ea, ["oauth_issuer_id"]),
|
|
67
|
+
oauth_issuer_location=safeget(ea, ["oauth_issuer_location"]),
|
|
68
|
+
saml_metadata=safeget(ea, ["saml_metadata"]),
|
|
69
|
+
)
|
|
70
|
+
return cls(
|
|
71
|
+
id=entity["id"],
|
|
72
|
+
attributes=attr,
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
@attr.s(auto_attribs=True, kw_only=True)
|
|
77
|
+
class CatalogIdentityProviderAttributes(Base):
|
|
78
|
+
custom_claim_mapping: Optional[dict[str, str]] = None
|
|
79
|
+
identifiers: Optional[list[str]] = None
|
|
80
|
+
oauth_client_id: Optional[str] = None
|
|
81
|
+
oauth_client_secret: Optional[str] = None
|
|
82
|
+
oauth_issuer_id: Optional[str] = None
|
|
83
|
+
oauth_issuer_location: Optional[str] = None
|
|
84
|
+
saml_metadata: Optional[str] = None
|
|
85
|
+
|
|
86
|
+
@staticmethod
|
|
87
|
+
def client_class() -> type[JsonApiIdentityProviderInAttributes]:
|
|
88
|
+
return JsonApiIdentityProviderInAttributes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# (C) 2024 GoodData Corporation
|
|
2
|
+
import builtins
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
import attr
|
|
6
|
+
from gooddata_api_client.model.declarative_identity_provider import DeclarativeIdentityProvider
|
|
7
|
+
|
|
8
|
+
from gooddata_sdk.catalog.base import Base
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@attr.s(auto_attribs=True, kw_only=True)
|
|
12
|
+
class CatalogDeclarativeIdentityProvider(Base):
|
|
13
|
+
id: str
|
|
14
|
+
custom_claim_mapping: Optional[dict[str, str]] = None
|
|
15
|
+
identifiers: Optional[list[str]] = None
|
|
16
|
+
oauth_client_id: Optional[str] = None
|
|
17
|
+
oauth_client_secret: Optional[str] = None
|
|
18
|
+
oauth_issuer_id: Optional[str] = None
|
|
19
|
+
oauth_issuer_location: Optional[str] = None
|
|
20
|
+
saml_metadata: Optional[str] = None
|
|
21
|
+
|
|
22
|
+
@staticmethod
|
|
23
|
+
def client_class() -> builtins.type[DeclarativeIdentityProvider]:
|
|
24
|
+
return DeclarativeIdentityProvider
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/service.py
RENAMED
|
@@ -7,16 +7,19 @@ from typing import Optional
|
|
|
7
7
|
from gooddata_api_client.exceptions import NotFoundException
|
|
8
8
|
from gooddata_api_client.model.declarative_notification_channels import DeclarativeNotificationChannels
|
|
9
9
|
from gooddata_api_client.model.json_api_csp_directive_in_document import JsonApiCspDirectiveInDocument
|
|
10
|
+
from gooddata_api_client.model.json_api_identity_provider_in_document import JsonApiIdentityProviderInDocument
|
|
10
11
|
from gooddata_api_client.model.json_api_organization_setting_in_document import JsonApiOrganizationSettingInDocument
|
|
11
12
|
|
|
12
13
|
from gooddata_sdk.catalog.catalog_service_base import CatalogServiceBase
|
|
13
14
|
from gooddata_sdk.catalog.organization.entity_model.directive import CatalogCspDirective
|
|
15
|
+
from gooddata_sdk.catalog.organization.entity_model.identity_provider import CatalogIdentityProvider
|
|
14
16
|
from gooddata_sdk.catalog.organization.entity_model.jwk import CatalogJwk, CatalogJwkDocument
|
|
15
17
|
from gooddata_sdk.catalog.organization.entity_model.organization import CatalogOrganizationDocument
|
|
16
18
|
from gooddata_sdk.catalog.organization.entity_model.setting import CatalogOrganizationSetting
|
|
19
|
+
from gooddata_sdk.catalog.organization.layout.identity_provider import CatalogDeclarativeIdentityProvider
|
|
17
20
|
from gooddata_sdk.catalog.organization.layout.notification_channel import CatalogDeclarativeNotificationChannel
|
|
18
21
|
from gooddata_sdk.client import GoodDataApiClient
|
|
19
|
-
from gooddata_sdk.utils import load_all_entities
|
|
22
|
+
from gooddata_sdk.utils import load_all_entities, load_all_entities_dict
|
|
20
23
|
|
|
21
24
|
|
|
22
25
|
class CatalogOrganizationService(CatalogServiceBase):
|
|
@@ -188,7 +191,7 @@ class CatalogOrganizationService(CatalogServiceBase):
|
|
|
188
191
|
|
|
189
192
|
Args:
|
|
190
193
|
organization_setting (CatalogOrganizationSettings):
|
|
191
|
-
A catalog organization setting
|
|
194
|
+
A catalog organization setting object to be created.
|
|
192
195
|
|
|
193
196
|
Returns:
|
|
194
197
|
None
|
|
@@ -225,7 +228,7 @@ class CatalogOrganizationService(CatalogServiceBase):
|
|
|
225
228
|
|
|
226
229
|
Args:
|
|
227
230
|
organization_setting (CatalogOrganizationSettings):
|
|
228
|
-
A catalog organization setting
|
|
231
|
+
A catalog organization setting object to be updated.
|
|
229
232
|
|
|
230
233
|
Returns:
|
|
231
234
|
None
|
|
@@ -249,7 +252,7 @@ class CatalogOrganizationService(CatalogServiceBase):
|
|
|
249
252
|
"""Returns a list of all csp directives in the current organization.
|
|
250
253
|
|
|
251
254
|
Returns:
|
|
252
|
-
list[
|
|
255
|
+
list[CatalogCspDirective]:
|
|
253
256
|
List of csp directives in the current organization.
|
|
254
257
|
"""
|
|
255
258
|
get_csp_directives = functools.partial(
|
|
@@ -277,7 +280,7 @@ class CatalogOrganizationService(CatalogServiceBase):
|
|
|
277
280
|
|
|
278
281
|
Args:
|
|
279
282
|
csp_directive (CatalogCspDirective):
|
|
280
|
-
A catalog csp directive
|
|
283
|
+
A catalog csp directive object to be created.
|
|
281
284
|
|
|
282
285
|
Returns:
|
|
283
286
|
None
|
|
@@ -309,7 +312,7 @@ class CatalogOrganizationService(CatalogServiceBase):
|
|
|
309
312
|
|
|
310
313
|
Args:
|
|
311
314
|
csp_directive (CatalogCspDirective):
|
|
312
|
-
A catalog csp directive
|
|
315
|
+
A catalog csp directive object to be updated.
|
|
313
316
|
|
|
314
317
|
Returns:
|
|
315
318
|
None
|
|
@@ -324,6 +327,86 @@ class CatalogOrganizationService(CatalogServiceBase):
|
|
|
324
327
|
except NotFoundException:
|
|
325
328
|
raise ValueError(f"Can not update {csp_directive.id} csp directive. This csp directive does not exist.")
|
|
326
329
|
|
|
330
|
+
def list_identity_providers(self) -> list[CatalogIdentityProvider]:
|
|
331
|
+
"""Returns a list of all identity providers in the current organization.
|
|
332
|
+
|
|
333
|
+
Returns:
|
|
334
|
+
list[CatalogIdentityProvider]:
|
|
335
|
+
List of identity providers in the current organization.
|
|
336
|
+
"""
|
|
337
|
+
get_identity_providers = functools.partial(
|
|
338
|
+
self._entities_api.get_all_entities_identity_providers,
|
|
339
|
+
_check_return_type=False,
|
|
340
|
+
)
|
|
341
|
+
identity_providers = load_all_entities_dict(get_identity_providers, camel_case=False)
|
|
342
|
+
return [
|
|
343
|
+
CatalogIdentityProvider.from_dict(identity_provider, camel_case=False)
|
|
344
|
+
for identity_provider in identity_providers["data"]
|
|
345
|
+
]
|
|
346
|
+
|
|
347
|
+
def get_identity_provider(self, identity_provider_id: str) -> CatalogIdentityProvider:
|
|
348
|
+
"""Get an individual identity provider.
|
|
349
|
+
|
|
350
|
+
Args:
|
|
351
|
+
identity_provider_id (str):
|
|
352
|
+
Identity provider identification string e.g. "demo"
|
|
353
|
+
|
|
354
|
+
Returns:
|
|
355
|
+
CatalogIdentityProvider:
|
|
356
|
+
Catalog identity provider object containing structure of the identity provider.
|
|
357
|
+
"""
|
|
358
|
+
identity_provider_api = self._entities_api.get_entity_identity_providers(id=identity_provider_id).data
|
|
359
|
+
return CatalogIdentityProvider.from_api(identity_provider_api)
|
|
360
|
+
|
|
361
|
+
def create_identity_provider(self, identity_provider: CatalogIdentityProvider) -> None:
|
|
362
|
+
"""Create a new identity provider.
|
|
363
|
+
|
|
364
|
+
Args:
|
|
365
|
+
identity_provider (CatalogIdentityProvider):
|
|
366
|
+
A catalog identity provider object to be created.
|
|
367
|
+
|
|
368
|
+
Returns:
|
|
369
|
+
None
|
|
370
|
+
"""
|
|
371
|
+
identity_provider_document = JsonApiIdentityProviderInDocument(data=identity_provider.to_api())
|
|
372
|
+
self._entities_api.create_entity_identity_providers(
|
|
373
|
+
json_api_identity_provider_in_document=identity_provider_document
|
|
374
|
+
)
|
|
375
|
+
|
|
376
|
+
def delete_identity_provider(self, identity_provider_id: str) -> None:
|
|
377
|
+
"""Delete an identity provider.
|
|
378
|
+
|
|
379
|
+
Args:
|
|
380
|
+
identity_provider_id (str):
|
|
381
|
+
Identity provider identification string e.g. "demo"
|
|
382
|
+
|
|
383
|
+
Returns:
|
|
384
|
+
None
|
|
385
|
+
"""
|
|
386
|
+
self._entities_api.delete_entity_identity_providers(identity_provider_id)
|
|
387
|
+
|
|
388
|
+
def update_identity_provider(self, identity_provider: CatalogIdentityProvider) -> None:
|
|
389
|
+
"""Update an identity provider.
|
|
390
|
+
|
|
391
|
+
Args:
|
|
392
|
+
identity_provider (CatalogIdentityProvider):
|
|
393
|
+
A catalog identity provider object to be updated.
|
|
394
|
+
|
|
395
|
+
Returns:
|
|
396
|
+
None
|
|
397
|
+
|
|
398
|
+
Raises:
|
|
399
|
+
ValueError:
|
|
400
|
+
Identity provider does not exist.
|
|
401
|
+
"""
|
|
402
|
+
try:
|
|
403
|
+
identity_provider_document = JsonApiIdentityProviderInDocument(data=identity_provider.to_api())
|
|
404
|
+
self._entities_api.update_entity_identity_providers(identity_provider.id, identity_provider_document)
|
|
405
|
+
except NotFoundException:
|
|
406
|
+
raise ValueError(
|
|
407
|
+
f"Can not update {identity_provider.id} identity provider. " f"This identity provider does not exist."
|
|
408
|
+
)
|
|
409
|
+
|
|
327
410
|
# Layout APIs
|
|
328
411
|
|
|
329
412
|
def get_declarative_notification_channels(self) -> list[CatalogDeclarativeNotificationChannel]:
|
|
@@ -354,3 +437,29 @@ class CatalogOrganizationService(CatalogServiceBase):
|
|
|
354
437
|
"""
|
|
355
438
|
api_ncs = [nc.to_api() for nc in notification_channels]
|
|
356
439
|
self._layout_api.set_notification_channels(DeclarativeNotificationChannels(notification_channels=api_ncs))
|
|
440
|
+
|
|
441
|
+
def get_declarative_identity_providers(self) -> list[CatalogDeclarativeIdentityProvider]:
|
|
442
|
+
"""
|
|
443
|
+
Get all declarative identity providers in the current organization.
|
|
444
|
+
|
|
445
|
+
Returns:
|
|
446
|
+
list[CatalogDeclarativeIdentityProvider]:
|
|
447
|
+
List of declarative identity providers.
|
|
448
|
+
"""
|
|
449
|
+
return [
|
|
450
|
+
CatalogDeclarativeIdentityProvider.from_api(idp) for idp in self._layout_api.get_identity_providers_layout()
|
|
451
|
+
]
|
|
452
|
+
|
|
453
|
+
def put_declarative_identity_providers(self, identity_providers: list[CatalogDeclarativeIdentityProvider]) -> None:
|
|
454
|
+
"""
|
|
455
|
+
Put declarative identity providers in the current organization.
|
|
456
|
+
|
|
457
|
+
Args:
|
|
458
|
+
identity_providers (list[CatalogDeclarativeIdentityProvider]):
|
|
459
|
+
List of declarative identity providers.
|
|
460
|
+
|
|
461
|
+
Returns:
|
|
462
|
+
None
|
|
463
|
+
"""
|
|
464
|
+
api_idps = [idp.to_api() for idp in identity_providers]
|
|
465
|
+
self._layout_api.set_identity_providers(declarative_identity_provider=api_idps)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: gooddata-sdk
|
|
3
|
-
Version: 1.31.1.
|
|
3
|
+
Version: 1.31.1.dev2
|
|
4
4
|
Summary: GoodData Cloud Python SDK
|
|
5
5
|
Author: GoodData
|
|
6
6
|
Author-email: support@gooddata.com
|
|
7
7
|
License: MIT
|
|
8
|
-
Project-URL: Documentation, https://www.gooddata.com/docs/python-sdk/1.31.1.
|
|
8
|
+
Project-URL: Documentation, https://www.gooddata.com/docs/python-sdk/1.31.1.dev2
|
|
9
9
|
Project-URL: Source, https://github.com/gooddata/gooddata-python-sdk
|
|
10
10
|
Keywords: gooddata,sdk,api,analytics,headless,business,intelligence,headless-bi,cloud,native,semantic,layer,sql,metrics
|
|
11
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
@@ -22,7 +22,7 @@ Classifier: Typing :: Typed
|
|
|
22
22
|
Requires-Python: >=3.9.0
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
License-File: LICENSE.txt
|
|
25
|
-
Requires-Dist: gooddata-api-client~=1.31.1.
|
|
25
|
+
Requires-Dist: gooddata-api-client~=1.31.1.dev2
|
|
26
26
|
Requires-Dist: python-dateutil>=2.5.3
|
|
27
27
|
Requires-Dist: pyyaml>=5.1
|
|
28
28
|
Requires-Dist: attrs<=24.2.0,>=21.4.0
|
|
@@ -46,7 +46,7 @@ At the moment the SDK provides services to inspect and interact with the Semanti
|
|
|
46
46
|
* Compute Service
|
|
47
47
|
* Table Service
|
|
48
48
|
|
|
49
|
-
See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.31.1.
|
|
49
|
+
See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.31.1.dev2) for more details.
|
|
50
50
|
|
|
51
51
|
## Requirements
|
|
52
52
|
|
|
@@ -59,10 +59,12 @@ gooddata_sdk/catalog/organization/__init__.py
|
|
|
59
59
|
gooddata_sdk/catalog/organization/service.py
|
|
60
60
|
gooddata_sdk/catalog/organization/entity_model/__init__.py
|
|
61
61
|
gooddata_sdk/catalog/organization/entity_model/directive.py
|
|
62
|
+
gooddata_sdk/catalog/organization/entity_model/identity_provider.py
|
|
62
63
|
gooddata_sdk/catalog/organization/entity_model/jwk.py
|
|
63
64
|
gooddata_sdk/catalog/organization/entity_model/organization.py
|
|
64
65
|
gooddata_sdk/catalog/organization/entity_model/setting.py
|
|
65
66
|
gooddata_sdk/catalog/organization/layout/__init__.py
|
|
67
|
+
gooddata_sdk/catalog/organization/layout/identity_provider.py
|
|
66
68
|
gooddata_sdk/catalog/organization/layout/notification_channel.py
|
|
67
69
|
gooddata_sdk/catalog/permission/__init__.py
|
|
68
70
|
gooddata_sdk/catalog/permission/service.py
|
|
@@ -7,7 +7,7 @@ this_directory = Path(__file__).parent
|
|
|
7
7
|
long_description = (this_directory / "README.md").read_text(encoding="utf-8")
|
|
8
8
|
|
|
9
9
|
REQUIRES = [
|
|
10
|
-
"gooddata-api-client~=1.31.1.
|
|
10
|
+
"gooddata-api-client~=1.31.1.dev2",
|
|
11
11
|
"python-dateutil>=2.5.3",
|
|
12
12
|
"pyyaml>=5.1",
|
|
13
13
|
"attrs>=21.4.0,<=24.2.0",
|
|
@@ -22,7 +22,7 @@ setup(
|
|
|
22
22
|
description="GoodData Cloud Python SDK",
|
|
23
23
|
long_description=long_description,
|
|
24
24
|
long_description_content_type="text/markdown",
|
|
25
|
-
version="1.31.1.
|
|
25
|
+
version="1.31.1.dev2",
|
|
26
26
|
author="GoodData",
|
|
27
27
|
author_email="support@gooddata.com",
|
|
28
28
|
license="MIT",
|
|
@@ -36,7 +36,7 @@ setup(
|
|
|
36
36
|
"bin/gdc",
|
|
37
37
|
],
|
|
38
38
|
project_urls={
|
|
39
|
-
"Documentation": "https://www.gooddata.com/docs/python-sdk/1.31.1.
|
|
39
|
+
"Documentation": "https://www.gooddata.com/docs/python-sdk/1.31.1.dev2",
|
|
40
40
|
"Source": "https://github.com/gooddata/gooddata-python-sdk",
|
|
41
41
|
},
|
|
42
42
|
classifiers=[
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/catalog_service_base.py
RENAMED
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/data_source/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/export/__init__.py
RENAMED
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/export/request.py
RENAMED
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/export/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/organization/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/permission/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/permission/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/user/entity_model/user.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/validate_by_item.py
RENAMED
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/catalog/workspace/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/model/__init__.py
RENAMED
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/model/attribute.py
RENAMED
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk/compute/model/execution.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_sdk-1.31.1.dev1 → gooddata_sdk-1.31.1.dev2}/gooddata_sdk.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|